delattr() オブジェクトの属性を削除する
最終更新:2026-09-22
delattr() オブジェクトの属性を削除する
delattr(obj, name) は obj 上の属性 name を削除する。del obj.name と等価。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
delattr(object, name)
⚙️ 引数
| object 必須 | The object to delete the attribute from. |
|---|---|
| name 必須 | The attribute name as a string. |
戻り値:None.
💥 例外
AttributeError— Raised when the attribute does not exist or cannot be deleted.TypeError— Raised when name is not a string.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
False
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qdelattr(obj, 'x') と del obj.x の違いは何ですか?
A機能は完全に等価です。delattr の利点は属性名を変数や動的文字列にできることで、名前指定で属性を削除する場面に適しています。
Q存在しない属性を削除するとどうなりますか?
AAttributeError を投げます。del obj.nonexist と同じ動作です。削除前に hasattr() で確認できます。
Qdelattr でメソッドを削除できますか?
Aできます。メソッドもクラス属性です。delattr(instance_or_class, 'method') で削除すると、その後にインスタンスでそのメソッドを呼ぶと AttributeError になります。
Qname 引数はどの型でなければなりませんか?
A文字列である必要があります。他の型(数字など)を渡すと TypeError になります。