hasattr() 属性の有無
最終更新:2026-09-22
hasattr() 属性の有無
hasattr(obj, name) は obj に name という名前の属性があるかどうかを判定する。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
hasattr(object, name)
⚙️ 引数
| object 必須 | The object to check for the attribute (any object). |
|---|---|
| name 必須 | Attribute name as a string, e.g. 'attr'. |
戻り値:A bool: True if the object has the named attribute, otherwise False.
💥 例外
TypeError— Raised when name is not a string.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
True
False
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qhasattr(obj, 'x') が True を返したら何を意味しますか?
Aobj に x という名前の属性があることを意味します(親クラスから継承したものを含む)。ただし値が None でないことや、呼び出し可能であることは保証されません。
Qhasattr と getattr の違いは何ですか?
Ahasattr は存在するかだけを判定し、ブール値を返します。getattr は値を取り出し、存在しなければ AttributeError を投げます(default を与えない限り)。
Q属性名はハードコードしなければなりませんか?
Aいいえ。hasattr(obj, attr_name) の属性名は変数にできます。オブジェクトの能力を動的に検査する場面に適しています。
Qhasattr でメソッドを検査できますか?
Aできます。メソッドも属性なので、hasattr(obj, 'method_name') は True を返します。callable() と組み合わせると呼び出し可能かまで確認できます。