Python入門、DIY、クッキング

小さなことをやってみるブログ

pythonのdelattr関数で属性を削除する(初心者のPython入門)

2019年7月2日

Pythonでオブジェクトから属性を削除するdelattr関数の使い方です。(Pythonの標準関数です。)

Pythonの標準関数一覧はこちらです。

属性とは

クラスのメンバ変数(数字、文字)を属性と呼んでいるようです。

delattr関数によって例えばnameという文字の属性(変数)を削除することが出来ます。

delattr関数の使い方

delattr(object,name)

objectはクラス名、nameは削除する属性(変数)名です。

# -*- coding: utf-8 -*-

# テスト用のクラス
class testclass:
    #この時点では中身は何も定義しない
    pass

# クラスに名前属性と名前を追加
setattr(testclass,"name","abc")
# クラスに数字属性と数字を追加
setattr(testclass,"number",123)

# 属性が入ったか取り出して確認する
print(getattr(testclass,"name"))
print(getattr(testclass,"number"))

# 属性を削除する
delattr(testclass,"number")

# 属性が削除されているか確認する
print(getattr(testclass,"name"))
print(getattr(testclass,"number"))

testclassにnameに”name"とい"う属性を追加し、"abc"という文字列をセットしています。

その後属性を削除し、再度表示しています。

実行結果は以下の通りです。

abc
123
abc
AttributeError: type object 'testclass' has no attribute 'number'

numberという属性をdelattr関数により削除したため、最後の行はエラーになっています。(エラーが出ているのは正しい動作です)

  • B!