Python delattr() 関数
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 と等価
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'}
コードの解説:
- 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}
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()より安全に使用できます。
その他の拡張