我检查一个对象是否具有一个属性或另一个属性,只能具有一个属性。
如果找到该属性,则将其值分配给变量。是否可以通过从可能的属性列表中获取动态信息(属性号可以变化)?
if hasattr(o, 'a') or if hasattr(o, 'b') or if hasattr(o, 'c') or if hasattr(o, 'd'):
result = the one that exist
答案 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")
显然,列表也可以动态构建。