2020
09-24
09-24
Python对象的属性访问过程详解
只想回答一个问题:当编译器要读取obj.field时,发生了什么?看似简单的属性访问,其过程还蛮曲折的.总共有以下几个step:1.如果obj本身(一个instance)有这个属性,返回.如果没有,执行step22.如果obj的class有这个属性,返回.如果没有,执行step3.3.如果在objclass的父类有这个属性,返回.如果没有,继续执行3,直到访问完所有的父类.如果还是没有,执行step4.4.执行obj.__getattr__方法.通过以下代码可以...
继续阅读 >