Mit*_*tar 5 python django object
如何仅从当前类而不是从可能的父类获取属性?如果我使用getattr它遍历类层次结构,但我想知道None当前类中是否未定义属性(即使它是在某些父类中定义的)。
这不是 100% 的证明答案(例如,它不适用于使用 的类__slots__),但它在大多数情况下都有效:
>>> class A(object):
... x = 42
... y = 43
...
>>> class B(A):
... x = 11
...
>>> b = B()
Run Code Online (Sandbox Code Playgroud)
您可以像这样直接检查该属性是否在类中定义:
>>> 'x' in b.__class__.__dict__
True
>>> 'y' in b.__class__.__dict__
False
Run Code Online (Sandbox Code Playgroud)
现在回答你的问题:
# comment explaining why this unusual check is necessary
if 'attribute' in instance.__class__.__dict__:
value = instance.attribute
else:
value = None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2292 次 |
| 最近记录: |