Python delattr() 関数

Python3 組み込み関数


delattr()Python でオブジェクトの属性を削除するための組み込み関数です。

delattr()オブジェクトの指定された属性を削除できます。deldel 文と似ていますが、削除する属性を文字列で動的に指定できます。

単語の意味: delattr 是 delete attribute(删除属性)的缩写。


基本構文とパラメータ

構文形式

delattr(object, name)

パラメータの説明

  • パラメータ object:
    • 型: 任意のオブジェクト
    • 説明: 属性を削除するオブジェクト。
  • パラメータ name:
    • 型: 文字列
    • 説明: 削除する属性名。

関数の説明

  • 戻り値: 戻り値はありません。
  • 例外: 属性が存在しない場合、AttributeError が発生します。

実例

例1:基本的な使い方

実例

class Person:
    def __init__(self):
        self.name = "Tom"
        self.age = 20
        self.city = "Beijing"

p = Person()
print(vars(p))
# 出力: {'name': 'Tom', 'age': 20, 'city': 'Beijing'}

# 属性を削除
delattr(p, "age")
print(vars(p))
# 出力: {'name': 'Tom', 'city': 'Beijing'}

# del p.age と等価

実行結果の予想:

{'name': 'Tom', 'age': 20, 'city': 'Beijing'}
{'name': 'Tom', 'city': 'Beijing'}

コードの解説:

  1. delattr(p, "age") は del p.age と等価です。

例2:動的な削除

実例

class Data:
    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3

d = Data()
print(vars(d))

# 属性を動的に削除
attrs_to_delete = ["a", "c"]
for attr in attrs_to_delete:
    if hasattr(d, attr):
        delattr(d, attr)

print(vars(d))  # 出力: {'b': 2}

実行結果:

複数の属性を動的に削除できます。

delattr()と組み合わせることでhasattr()より安全に使用できます。


Python3 組み込み関数


その他の拡張