请
登录后发表观点
-
比如:
>>> a = SomeClass() >>> a.someProperty = value >>> a.property Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: SomeClass instance has no attribute 'property'
怎样在使用之前知道
a
是否有property
这个属性?
试试
hasattr()
:if hasattr(a, 'property'): a.property
在大多数实际情况下,如果一个属性有很大可能存在,那么就直接调用它或者让它引发异常,或者用
try/except
捕获。这种方法比hasattr
快。如果这个属性很多情况下不在,或者你不确定,那么用hasattr
将会比触法异常更快。