首页 > Python > 如何检查对象是否具有某些属性?如何判断是否具有该属性?aproperty

如何检查对象是否具有某些属性?如何判断是否具有该属性?aproperty

上一篇 下一篇

如何检查对象是否具有某些属性?例如:

>>> a = SomeClass()
>>> a.property
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'

在使用之前如何判断是否具有该属性?aproperty

分割线

网友回答:

正如贾勒特·哈迪(Jarret Hardie)回答的那样,会做到这一点。不过,我想补充一点,Python社区中的许多人推荐一种“请求宽恕比许可更容易”(EAFP)而不是“在跳跃之前先看看”(LBYL)的策略。请参阅以下参考资料:hasattr

EAFP vs LBYL(是 Re:到目前为止有点失望)
EAFP vs. LBYL @Code 像一个 Pythonista:惯用的蟒蛇

结婚

try:
    doStuff(a.property)
except AttributeError:
    otherStuff()

…优先于:

if hasattr(a, 'property'):
    doStuff(a.property)
else:
    otherStuff()

分割线

网友回答:

尝试:hasattr()

if hasattr(a, 'property'):
    a.property

请参阅下面的zweiterlinde的回答,他提供了关于请求宽恕的好建议!一种非常蟒蛇的方法!

python 中的一般做法是,如果属性大部分时间都存在,只需调用它并让异常传播,或者使用 try/except 块捕获它。这可能比 更快。如果该属性可能大部分时间都不存在,或者您不确定,则使用可能会比反复陷入异常块更快。hasattrhasattr

分割线

网友回答:

您可以使用或捕获,但是如果您真的只想要属性的值,如果不存在默认值,则最好的选择是使用:hasattr()AttributeErrorgetattr()

getattr(a, 'property', 'default value')

模板简介:该模板名称为【如何检查对象是否具有某些属性?如何判断是否具有该属性?aproperty】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 257次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-16
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 自适应 企业网站 微信图片 微信文章 单页式简历模板 微信公众平台 微信素材 响应式 微信模板
您可能会喜欢的其他模板