用户登录
用户注册

分享至

hasattr() 与 try-except 块处理不存在的属性

  • 作者: 火火火火火火火火火火火火
  • 来源: 51数据库
  • 2023-01-06

问题描述

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.

软件
前端设计
程序设计
Java相关