gpt4 book ai didi

python - 如何只从当前类而不是从可能的父类获取属性?

转载 作者:行者123 更新时间:2023-11-28 16:53:55 25 4
gpt4 key购买 nike

如何只从当前类而不是从可能的父类获取属性?如果我使用 getattr 它会遍历类层次结构,但如果属性未在当前类中定义(即使它已在某些父类中定义),我想得到 None

最佳答案

这不是 100% 证明的答案(例如,它不适用于使用 __slots__ 的类),但它在大多数情况下都有效:

>>> class A(object):
... x = 42
... y = 43
...
>>> class B(A):
... x = 11
...
>>> b = B()

您可以像这样直接检查属性是否在类中定义:

>>> 'x' in b.__class__.__dict__
True
>>> 'y' in b.__class__.__dict__
False

现在回答你的问题:

# comment explaining why this unusual check is necessary
if 'attribute' in instance.__class__.__dict__:
value = instance.attribute
else:
value = None

关于python - 如何只从当前类而不是从可能的父类获取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com