gpt4 book ai didi

python - 检查类属性是否在给定类中定义或派生

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:04 25 4
gpt4 key购买 nike

例子

class A:
foo = 1

class B:
foo = 2

class C:
foo = 3

class D(A, B, C):
pass

def collect_foo(cls):
import inspect
foos = []
for c in inspect.getmro(cls):
if hasattr(c, 'foo'):
foos.append(c.foo)
return foos

现在 collect_foo(D) 返回 [1, 1, 2, 3] - 1 加倍为 D 派生自 A。问题是 - 如何获得唯一的 foo。我想到的第一件事是检查属性是否在给定类中派生或声明 - 这可能吗?如何做到这一点?

最佳答案

检查一下

'foo' in c.__dict__

代替

hasattr(c, 'foo')

如果属性是在 c 本身中定义的,这只会产生 True

关于python - 检查类属性是否在给定类中定义或派生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253397/

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