Iteruj nad atrybutami obiektów w Pythonie
Mam obiekt Pythona z kilkoma atrybutami i metodami. Chcę iterować po atrybutach obiektu.
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
Chcę wygenerować słownik zawierający wszystkie atrybuty obiektów i ich bieżące wartości, ale chcę to zrobić w sposób dynamiczny (więc jeśli później dodam inny atrybut, nie muszę też pamiętać o aktualizacji mojej funkcji).
W php zmienne mogą być używane jako klucze, ale obiekty w pythonie nie nadają się do zapisu i jeśli użyję do tego notacji kropkowej, to tworzy nowy atrybut o nazwie mój var, co nie jest moim zamiarem.
Aby wszystko było jaśniejsze:
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
Aktualizacja: Z atrybutami mam na myśli tylko zmienne tego obiektu, a nie metody.