概要
指定したオブジェクトから指定した属性を削除するdelattr
関数を使ってみたので紹介します。
公式ドキュメントはこちらです。
サンプルコード
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
john = Person("John", 30)
print(john.__dict__) # {'name': 'John', 'age': 30}
delattr(john, 'age')
print(john.__dict__) # {'name': 'John'}
delattr(john, 'age')
を実行すると、john
からage
属性が削除されたことがわかります。
もちろん、ここで属性ではないもの(例:gender
)を選択するとエラーになります。
Traceback (most recent call last):
File "xxxxxx", line 10, in <module>
delattr(john, 'gender')
AttributeError: gender
この場合はAttributeError
になるので例外処理の場合はこれを拾ってあげると良いでしょう。
delattr
関数は、変数に消したい属性名が格納されている場合などで使うことができます。
似たような関数にsetattr
がありますが、以前記事にもしたのでご参考までに。