python property的AttributeError的问题

python property的AttributeError的问题_第1张图片

上面的例子可以看到我们确实有name这个属性,但是程序确抛出没有name这个属性的错误:

1/在name方法中我们调用了不存在的属性missing_attribute;

2/通过__getattr__方法来处理获取不存在属性时的错误;

通过分析与网上查找的出的结论是,出现这个错误需要满足两个条件:

1/使用property装饰器的方法中有未预期的属性调用,说白了就是调用了不存在的属性,如上述例子中的missing_attribute属性;

2/实现了__getattr__方法;

 

这个其实不属于BUG,需要我们开发者来规避这类错误的写法

解决:把__getattr__方法改成__getattribute__可解决

python property的AttributeError的问题_第2张图片

这样写可以成功抛出对应的错误。

你可能感兴趣的:(Python,python,property)