J'ai un objet python avec plusieurs attributs et méthodes. Je veux itérer sur les attributs de l'objet.
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
Je veux générer un dictionnaire contenant tous les attributs des objets et leurs valeurs actuelles, mais je veux le faire de manière dynamique (ainsi, si plus tard j'ajoute un autre attribut, je ne dois pas me souvenir de mettre à jour ma fonction également).
En php, les variables peuvent être utilisées comme clés, mais les objets en python sont insuscriptibles et si j'utilise la notation par points pour cela, cela crée un nouvel attribut avec le nom de ma var, ce qui n'est pas mon intention.
Pour que les choses soient plus claires :
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
Mise à jour : Avec les attributs, je veux dire seulement les variables de cet objet, pas les méthodes.