141 votes

Obtention des attributs d’une classe

Je veux obtenir les attributs d'une classe, disons :

 class MyClass():
  a = "12"
  b = "34"

  def myfunc(self):
    return self.a

utiliser MyClass.__dict__ me donne une liste d'attributs et de fonctions, et même des fonctions comme __module__ et __doc__ . Alors que MyClass().__dict__ me donne un dict vide à moins que je définisse explicitement une valeur d'attribut de cette instance.

Je veux juste les attributs, dans l'exemple ci-dessus ceux-ci seraient : a et b

58voto

Doug Points 2296
def props(cls):   
  return [i for i in cls.__dict__.keys() if i[:1] != '_']

properties = props(MyClass)

9voto

Borealid Points 35075

``

Cependant, le « droit » était de le faire via le module d’inspection.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X