|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码1:不给属性赋值,则有输出结果,输出结果为:该属性不存在!
class Demo:
def __getattr__(self, name):
a='该属性不存在!'
print(a)
return a
demo = Demo() #创建一个对象
#demo.x #x为对象的一个属性
demo.x
代码2:给代码赋值,为什么没有输出结果
class Demo:
def __getattr__(self, name):
a='该属性不存在!'
print(a)
return a
demo = Demo() #创建一个对象
#demo.x #x为对象的一个属性
demo.x=222
本帖最后由 suchocolate 于 2020-3-13 22:18 编辑
__getattr__:定义用户访问一个不存在的属性时的行为
1)代码1:demo.x没有这个属性,所以执行__getattr__,其中有一个print,所以会输出。
2)代码2:demo.x=222是给属性赋值,不是访问不存在的属性,所以不会触发,就不会调用其中的print。
|
|