我有一堆看起来与此类似的代码:
try:
auth = page.ItemAttributes.Author
except:
try:
auth = page.ItemAttributes.Creator
except:
auth = None
有没有更好的方法来写出这个逻辑?这让我的代码读起来真的很痛苦。我以为 try..finally 会起作用,但我假设错了
最佳答案
您可以使用 hasattr 来避免 try/except block :
auth = None
for attrname in ['Author', 'Creator']:
if hasattr(page.ItemAttributes, attrname):
auth = getattr(page.ItemAttributes, attrname)
break
另一种编写上述代码的方法是使用 Python for
循环的 else
子句:
for attrname in ['Author', 'Creator']:
if hasattr(page.ItemAttributes, attrname):
auth = getattr(page.ItemAttributes, attrname)
break
else:
auth = None
关于python - 有没有一种很好的方法来处理 Python 中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114246/