hasattr() 与 try-except 块处理不存在的属性
问题描述
if hasattr(obj, 'attribute'):
# do somthing
对
try:
# access obj.attribute
except AttributeError, e:
# deal with AttributeError
应该首选哪个以及为什么?
Which should be preferred and why?
解决方案
hasattr
在内部快速执行与 try/except
块相同的任务:这是一个非常具体的,经过优化的单任务工具,因此在适用时应优先于非常通用的替代方案.
hasattr
internally and rapidly performs the same task as the try/except
block: it's a very specific, optimized, one-task tool and thus should be preferred, when applicable, to the very general-purpose alternative.
相关文章