Python对象的属性访问过程详解

qqarmor37980 28 0 pdf 2021-05-06 05:05:29

只想回答一个问题: 当编译器要读取obj.field时, 发生了什么?看下面一个例子:当 a = A() 后,并没有为实例建立任何属性,或者说实例的__dict__是空的。但是如果要查看 a.author,因为实例的属性中没有,所以就去类属性中找,发现果然有,于是返回其值 “qiwsir”。但是,在找 a.lang的时候,不仅实例属性中没有,类属性中也没有,于是就调用了__getattr__()方法。在上面的类中,有这个方法,如果没有__getattr__()方法呢?如果没有定义这个方法,就会引发 AttributeError,这在前面已经看到了。

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

Python对象的属性访问过程详解

用户评论
请输入评论内容
评分:
暂无评论