鱼C论坛

 找回密码
 立即注册
查看: 2121|回复: 6

关于属性的魔法方法问题

[复制链接]
发表于 2017-7-17 18:04:58 | 显示全部楼层 |阅读模式

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

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

x
第一个代码里面,c.x=1,c.y=1,c.z=1,可是类C里面并没有关于X,Y,Z的对象,之前有印象说是属性,可是还是不太理解。望解答!!
timu.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-17 18:33:22 | 显示全部楼层
其实c.x = 1就直接调用了父类的__setattr__方法,新增了一个属性x,值为1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-17 18:39:27 | 显示全部楼层
我定义了一个空的类,当我尝试访问它的name属性时,程序抛出异常,通过bird.name = "red"这个操作,我成功新建了一个属性并且能够访问

Screenshot_2017-07-17-18-35-30-655_com.hipipal.qpy3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-17 19:56:49 | 显示全部楼层
MSK 发表于 2017-7-17 18:39
我定义了一个空的类,当我尝试访问它的name属性时,程序抛出异常,通过bird.name = "red"这个操作,我成功 ...

在定义类的时候,类会默认添加__setattr__的魔法方法,这就是魔法方法的神奇之处,当然,你也可以重写__setattr__()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-17 20:03:19 | 显示全部楼层
MSK 发表于 2017-7-17 18:39
我定义了一个空的类,当我尝试访问它的name属性时,程序抛出异常,通过bird.name = "red"这个操作,我成功 ...

那请问这个属性是属于谁的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-18 08:21:46 | 显示全部楼层
这属性当然属于实例对象啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-18 08:23:16 From FishC Mobile | 显示全部楼层
qq13459621230 发表于 2017-7-17 20:03
那请问这个属性是属于谁的呢?

当然是属于bird啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 20:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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