web-dev-qa-db-ja.com

Python属性をチェックするためのget()のようなメソッド

辞書dictがあり、dict['key']を確認したい場合は、tryブロックで確認するか(ちょっと!)、get()メソッドを使用します、デフォルト値としてFalseを使用します。

object.attributeについても同じことをしたいと思います。つまり、設定されていない場合はFalseを返すオブジェクトが既にありますが、次のようなエラーが発生します

AttributeError: 'bool'オブジェクトには属性 'attribute'がありません

68
jamtoday

hasattrよりもdict.get(key, default)に直接類似するのは、getattrです。

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

(どこ default_valueはオプションであり、属性が見つからない場合は例外が発生します。

あなたの例では、Falseを渡します。

109
Brian

おそらくhasattr()を意味しますか?

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

Python.org doc-組み込み関数-hasattr()

これを行うこともできますが、これはもう少し煩雑であり、メソッドでは機能しません。

"attribute" in obj.__dict__
18
Zoomulator

キーが辞書にあるかどうかを確認するには、in:_'key' in dictionary_を使用できます。

オブジェクトの属性を確認するには、hasattr()関数を使用します:hasattr(obj, 'attribute')

7
unbeknown