Ich habe ein Python-Objekt mit mehreren Attributen und Methoden. Ich möchte über Objektattribute iterieren.
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
Ich möchte ein Wörterbuch generieren, das alle Objektattribute und ihre aktuellen Werte enthält, aber ich möchte dies auf dynamische Weise tun (wenn ich später ein weiteres Attribut hinzufüge, muss ich nicht daran denken, auch meine Funktion zu aktualisieren).
In PHP können Variablen als Schlüssel verwendet werden, aber Objekte in Python sind nicht beschreibbar. Wenn ich hierfür die Punktnotation verwende, wird ein neues Attribut mit dem Namen meiner Variable erstellt, was nicht meine Absicht ist.
Nur um die Dinge klarer zu machen:
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
Update: Mit Attributen meine ich nur die Variablen dieses Objekts, nicht die Methoden.
predicate
Argument verwenden, um eine aufrufbare Datei zu übergeben, die (gebundene?) Funktionen herausfiltert (wodurch die Methoden entfernt werden).