Classe Python et attributs de module

Je suis intéressé par une discussion sur les attributs de classe en Python. Par exemple, ce qui est un bon cas d'utilisation pour les attributs de classe? Pour la plupart, je ne peux pas venir avec un cas où un attribut de classe est préférable à l'utilisation d'un module attribut de niveau. Si cela est vrai, alors pourquoi les avoir autour?

Le problème que j'ai avec eux, c'est que c'est presque trop facile de tabasser un attribut de classe de la valeur par erreur, et puis votre "global" de la valeur s'est transformée en une instance locale de l'attribut.

N'hésitez pas à commenter sur la façon dont vous gérer les situations suivantes:

  1. Les valeurs des constantes utilisées par une classe et/ou sous-classes. Cela peut inclure le "nombre magique" les clés de dictionnaire ou d'une liste d'indices qui ne changera jamais, mais possible besoin d'un temps d'initialisation.
  2. Par défaut de l'attribut de classe, que dans de rares occasions, mis à jour pour une instance de la classe.
  3. Mondial de la structure de données utilisée pour représenter un état interne d'une classe partagée entre toutes les instances.
  4. Une classe qui initialise un certain nombre d'attributs par défaut, ne sont pas influencés par des arguments du constructeur.

Certains Postes Liés À:

Différence Entre les classes et les Attributs d'Instance

source d'informationauteur