求解
Topic source实例对象.属性名,这是在访问该实例对象中该属性的值。但是当该实例对象中不存在要访问的属性值的时候,就会自动调用getattr()这个方法。 例如,对于Chain().status来说,Chain()是在定义一个Chain这个类的实例对象,只不过这个实例对象没有赋值给某一个变量。然后访问这个实例对象中的status这个属性。然而该实例对象中不存在status这个属性,所以调用该实例对象的getattr方法,而getattr包含两个参数,self和attr,self省略不管,attr就是要访问的(在实例对象中不存在的)属性名,也就是会调用getattr(self, 'status')。这样就将status拼接到self.path后面了。
- 1
Champhy_Who
针对可嘻可惜5250的回答
其中有一处不懂
这句有些困惑 1.为何.运算一定执行的是getattr,如果这个class更加复杂?
2.instance.method() 实利调用方法,我能理解 但是instance.变量,不能理解
楼主本人可能不在,希望其他同学解答一下