いくつかの属性とメソッドを持つ python オブジェクトがあります。オブジェクトの属性を反復処理したい。
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
すべてのオブジェクト属性とその現在の値を含むディクショナリを生成したいのですが、それを動的な方法で行いたいです (したがって、後で別の属性を追加する場合、関数も更新することを覚えておく必要はありません)。
PHP では変数をキーとして使用できますが、Python のオブジェクトは添え字を付けることができず、これにドット表記を使用すると、var の名前で新しい属性が作成されますが、これは私の意図ではありません。
物事を明確にするために:
def to_dict(self):
'''this is what I already have'''
d={}
d["attr1"]= self.attr1
d["attr2"]= self.attr2
d["attr3"]= self.attr3
return d
·
def to_dict(self):
'''this is what I want to do'''
d={}
for v in my_python_obj.attributes:
d[v] = self.v
return d
更新: 属性とは、メソッドではなく、このオブジェクトの変数のみを意味します。