Iterar sobre atributos de objeto em python
Eu tenho um objeto python com vários atributos e métodos. Eu quero iterar sobre atributos de objeto.
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
Eu quero gerar um dicionário contendo todos os atributos de objetos e seus valores atuais, mas eu quero fazê-lo de uma forma dinâmica (por isso, se mais tarde eu adicionar outro atributo não preciso lembrar de atualizar minha função também).
Em php variáveis podem ser usadas como chaves, mas objetos em python são unsuscriptable e se eu usar a notação de ponto para isso, cria um novo atributo com o nome do meu var, que não é minha intenção.
Apenas para tornar as coisas mais claras:
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
Atualização: Com atributos quero dizer apenas as variáveis deste objeto, não os métodos.