我发现自己经常做以下事情:
attr = getattr(obj, 'attr', None)
if attr is not None:
attr()
# Do something, either attr(), or func(attr), or whatever
else:
# Do something else
还有更Python化的写法吗?这是否更好? (至少不是在性能上,IMO。)
try:
obj.attr() # or whatever
except AttributeError:
# Do something else
最佳答案
由于您正在调用attr
,因此可以执行以下操作:
def default_action():
# do something else
action = getattr(obj, 'attr', default_action)
action()
关于python - 简洁的getattr()方法,如果在Python中没有,则使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2428557/