检查对象是否具有属性列表中的属性,如果找到,则将其分配给变量-动态

时间:2018-08-15 11:27:32

标签: python python-3.x python-object

我检查一个对象是否具有一个属性或另一个属性,只能具有一个属性。

如果找到该属性,则将其值分配给变量。是否可以通过从可能的属性列表中获取动态信息(属性号可以变化)?

if hasattr(o, 'a') or if hasattr(o, 'b') or if hasattr(o, 'c') or if hasattr(o, 'd'):

result = the one that exist

1 个答案:

答案 0 :(得分:1)

将属性放入列表并进行迭代:

for attr in ['a', 'b', 'c', 'd']:
    try:
        result = getattr(o, attr)
    except AttributeError:
        # Try the next one
        continue
    break
else:
    raise ValueError("No attribute found")

显然,列表也可以动态构建。