86

辞書がdictあり、チェックしたい場合dict['key']は、ブロックで行うかtry(bleh!)、デフォルト値としてget()メソッドを使用できます。False

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

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

4

3 に答える 3

135

dict.get(key, default)よりも直接的なアナログhasattrですgetattr

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

(default_valueはオプションで、見つからない場合は属性なしで例外を発生させます。)

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

于 2008-12-10T14:27:29.763 に答える
21

hasattr()たぶん?

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

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

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

"attribute" in obj.__dict__
于 2008-12-10T09:59:36.297 に答える
7

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

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

于 2008-12-10T10:01:28.133 に答える