getattr() オブジェクトの属性を取得
最終更新:2026-09-22
getattr() オブジェクトの属性を取得
getattr(obj, name[, default]) は obj の属性 name を返す。存在しない場合は default を返す(そうでなければ AttributeError を送出)。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
getattr(object, name[, default])
⚙️ 引数
| object 必須 | The object to read the attribute from. |
|---|---|
| name 必須 | The attribute name as a string. |
| default 任意 | Value returned if the attribute is missing.(デフォルト値:None) |
戻り値:The attribute value, or default if the attribute is missing.
💥 例外
AttributeError— Raised when the attribute is missing and no default is given.TypeError— Raised when name is not a string.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
10
default
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qgetattr(obj, 'x', 'default') と obj.x の違いは何ですか?
A属性が存在すれば結果は同じです。存在しない場合、getattr は 'default' を返しますが、obj.x は直接 AttributeError を投げます。
Qどのような場面で getattr が必須ですか?
A属性名が動的に算出される(変数・設定・文字列連結などから来る)場合、getattr(obj, attr_name) は点構文では置き換えられません。
Qgetattr と hasattr はどう組み合わせますか?
Ahasattr(obj, 'x') で確認してから getattr(obj, 'x') を使うこともできますが、より簡潔には getattr(obj, 'x', None) が一歩で済みます。
Qdefault を省略して属性が存在しないとどうなりますか?
AAttributeError を投げます。name が文字列でない場合は TypeError になります。