Pythonでオブジェクトに属性を追加するsetattr関数の使い方です。(Pythonの標準関数です。)
属性とは
クラスのメンバ変数(数字、文字)を属性と呼んでいると理解しました。
たとえばtestclassというクラスを宣言した時点では変数を定義せず、途中でnameという文字の属性(変数)を追加して、それに値を代入するような使い方が出来ます。
setattr関数の使い方
setattr(object,name,value)
objectはクラス名、nameは追加する属性(変数)名、valueはその属性に入れる値です。
# -*- coding: utf-8 -*-
# テスト用のクラス
class testclass:
#この時点では中身は何も定義しない
pass
# クラスに名前属性と名前を追加
setattr(testclass,"name","abc")
# クラスに数字属性と数字を追加
setattr(testclass,"number",123)
# 属性が入ったか取り出して確認する
print(getattr(testclass,"name"))
print(getattr(testclass,"number"))
testclassにnameに”name"とい"う属性を追加し、"abc"という文字列をセットしています。
その後"number"という属性を追加し、123という数値をセットしています。
それをgetattr()で取り出して表示しています。
実行結果は以下の通りです。
abc
123
setattr関数は、クラスを作った時に定義していなかった属性をあとで追加するような使い方が出来ます。
使用方法はわかりましたが、どういうシチュエーションで使えば便利なのかは、これから勉強したいと思います。