私はいくつかの属性とメソッドを持つ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
更新:属性とは、メソッドではなく、このオブジェクトの変数のみを意味します。
predicate
引数を使用して、(メソッドを取り除く)(bound?)関数を除外する呼び出し可能オブジェクトを渡します。