Listar atributos de un objeto [duplicado]

Resuelto MadSc13ntist asked hace 14 años • 0 respuestas

¿Hay alguna manera de obtener una lista de atributos que existen en instancias de una clase?

class new_class():
    def __init__(self, number):
        self.multi = int(number) * 2
        self.str = str(number)

a = new_class(2)
print(', '.join(a.SOMETHING))

El resultado deseado es que se generará "multi, str". Quiero que esto vea los atributos actuales de varias partes de un script.

MadSc13ntist avatar Apr 20 '10 19:04 MadSc13ntist
Aceptado
>>> class new_class():
...   def __init__(self, number):
...     self.multi = int(number) * 2
...     self.str = str(number)
... 
>>> a = new_class(2)
>>> a.__dict__
{'multi': 4, 'str': '2'}
>>> a.__dict__.keys()
dict_keys(['multi', 'str'])

También puede resultarle útil imprimir .

 avatar Apr 20 '2010 12:04
dir(instance)
# or (same value)
instance.__dir__()
# or
instance.__dict__

Luego puedes probar con qué tipo está type()o si es un método con callable().

Htechno avatar Apr 20 '2010 13:04 Htechno