【问题标题】:A get() like method for checking for Python attributes用于检查 Python 属性的类似 get() 的方法
【发布时间】:2010-09-26 05:07:37
【问题描述】:

如果我有一个字典 dict 并且我想检查 dict['key'] 我可以在 try 块中这样做(嘘!)或使用 get() 方法,False 作为默认值价值。

我想为object.attribute 做同样的事情。也就是说,如果尚未设置,我已经有对象要返回 False,但这会给我类似

的错误

AttributeError: 'bool' 对象没有属性 'attribute'

【问题讨论】:

    标签: python attributes


    【解决方案1】:

    dict.get(key, default)hasattr 更直接的类似物是 getattr

    val = getattr(obj, 'attr_to_check', default_value)
    

    (其中default_value 是可选的,如果未找到则在没有属性时引发异常。)

    对于您的示例,您将传递 False

    【讨论】:

      【解决方案2】:

      你的意思是hasattr()吗?

      hasattr(object, "attribute name") #Returns True or False
      

      Python.org doc - Built in functions - hasattr()

      你也可以这样做,有点杂乱,对方法不起作用。

      "attribute" in obj.__dict__
      

      【讨论】:

        【解决方案3】:

        要检查某个键是否在字典中,您可以使用 in: 'key' in dictionary

        要检查对象中的属性,请使用hasattr() 函数:hasattr(obj, 'attribute')

        【讨论】:

        • 唯一的答案是解决这样一个事实,即检查 OP 提供的 dict 的两个选项都是 Bleh!
        猜你喜欢
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        • 1970-01-01
        • 2013-05-20
        • 2013-09-13
        • 2011-04-05
        • 2014-04-02
        相关资源
        最近更新 更多