[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
2022-03-17 08:42:41
質問
Pythonで、あるオブジェクトがある属性を持っているかどうかを判断する方法はありますか? 例えば
>>> a = SomeClass()
>>> a.someProperty = value
>>> a.property
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'
をどのように判断するのですか?
a
は属性
property
を使用する前に、それを使用しますか?
解決方法は?
試す
hasattr()
:
if hasattr(a, 'property'):
a.property
参照 zweiterlindeの回答 許しを請うことについて良いアドバイスをしています。とてもピトニックなアプローチですね
Pythonの一般的なプラクティスは、そのプロパティがほとんどの時間そこにある可能性がある場合、単にそれを呼び出して例外を伝播させるか、try/exceptブロックでそれをトラップすることです。これはおそらく
hasattr
. もし、そのプロパティが常に存在するわけではない場合や、確信が持てない場合には
hasattr
の方が、例外ブロックに何度も陥るより速いでしょう。
関連
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 億の相対的輸入
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
Python Decorator 練習問題
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] アサートの使用に関するベストプラクティス?
-
[解決済み】Python argparse.Namespace()を辞書として処理する正しい方法は何ですか?