J'ai un objet python avec plusieurs attributs et méthodes. Je veux parcourir les attributs d'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 (donc si plus tard j'ajoute un autre attribut, je n'ai 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.
Juste pour clarifier les choses:
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 uniquement les variables de cet objet, pas les méthodes.
predicate
argument optionnel pour passer un appelable qui filtrerait les fonctions (liées?) (qui se débarrasserait des méthodes).