1. 首页
  2. 编程语言
  3. Python
  4. Python对象的属性访问过程详解

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

上传者: 2021-05-06 05:17:30上传 PDF文件 113.75 KB 热度 35次

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

下载地址
用户评论