鱼C论坛

 找回密码
 立即注册
查看: 1829|回复: 14

[已解决]属性访问的重写问题 小甲鱼代码中疑惑

[复制链接]
发表于 2022-5-1 19:23:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 minamikotori 于 2022-5-1 19:36 编辑

小甲鱼的代码中,重写了父类的魔法方法
例如说若 不重写这几个魔法方法,那不应该是继承了基类的这些魔法方法(就是相当于没有print的环节)
那为什么不能直接在外面创建没有的属性

而是只有在 加上return 基类的魔法方法,这时才可以在外面随意创建属性

小甲鱼的代码中重写不就是仅仅加上了一句print吗 和直接继承后调用有什么区别呢
最佳答案
2022-5-1 19:31:47
你不重写的话,确实默认是继承了基类(object类)的方法,

而小甲鱼的代码中也是调用了基类的方法,所以小甲鱼这里是为了给你演示怎么重写魔法方法,

那个 print 是为了更清楚的看到 魔法方法 在什么时候被调用,

你不重写的话也可以添加属性,但是你如果重写的话就必须得调用基类的方法,

因为设置属性这些是底层写好了的,你只能添加自己额外的逻辑,

设置属性还是得靠基类的方法
QQ图片20220501191610.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-1 19:30:32 | 显示全部楼层
python爱好者. 发表于 2022-5-1 19:28
是的,虽然看起来也可以,但小甲鱼这里是教你如何自己定义想要的方法,直接继承就没有这个效果 —— print( ...

但是直接继承我并不能去访问C.x
会返回x属性不存在啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-1 19:34:35 | 显示全部楼层
isdkz 发表于 2022-5-1 19:31
你不重写的话,确实默认是继承了基类(object类)的方法,

而小甲鱼的代码中也是调用了基类的方法,所以 ...

对 我明白小甲鱼的意思
我的疑惑是 不去定义x 而可以访问(设置)属性x是基类的方法给的么
如果是的话,我不去重写,那基类的方法是不是也允许我不去定义x而访问(设置)属性x
然而 实际上返回给我x属性不存在了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-1 19:35:34 | 显示全部楼层
python爱好者. 发表于 2022-5-1 19:31
所以自己写 当获取这个类中属性 的代码时,就能控制报错,更有个性

嗯 但是自己写的话 以小甲鱼的案例  只是在基类的方法前加了个print 那为什么可以控制报错呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-1 19:38:07 | 显示全部楼层
让我理一理
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-1 19:38:37 | 显示全部楼层
isdkz 发表于 2022-5-1 19:37
我什么时候运气变这么好了

哈哈 概率被我偷偷改成100了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-1 19:39:16 | 显示全部楼层
isdkz 发表于 2022-5-1 19:37
我什么时候运气变这么好了

哈哈 概率被我偷偷改成100%了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-22 21:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表