在调试python源码时遇到一件奇怪的事情, 某个属性的值为__iter__
, 并且给它明确的赋别的值, 发现并没有作用, 如下所示:
仔细思考了一下, 有点儿明白了, __getattr__
方法的作用是当找不到对象的属性时会调用此函数, 这时, method的值'deviceInfo'
就是此对象不存在的属性, 所以进入到__getattr__
方法中, 那么在此方法中再进行属性赋值操作有可能陷入死循环, 我猜测是不是此种原因才导致里面的赋值看起来没有起作用, 赋予一个临时的__iter__
值?