Durchlaufen Sie die Objektattribute in Python

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, dies jedoch auf dynamische Weise. Wenn ich später ein weiteres Attribut hinzufüge, muss ich nicht daran denken, meine Funktion ebenfalls zu aktualisieren.

In PHP können Variablen als Schlüssel verwendet werden, aber Objekte in Python können nicht beschrieben werden. Wenn ich dafür die Punktnotation verwende, wird ein neues Attribut mit dem Namen meiner Variable erstellt, was nicht meine Absicht ist.

Nur um es 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.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage