-1
votes

Initialiser les attributs de la classe statique à Python

J'ai la classe suivante xxx

note que x dans la pratique est un objet qui doit être commun à tous les objets créés à partir de cette classe et je ne peux pas Écrivez par exemple x = 5 J'ai donc besoin d'une fonction pour l'initialiser. Alors, comment puis-je appeler la fonction qui initiale x une seule fois et non pour chaque objet créé? Aussi est-ce généralement une bonne pratique dans Python de sauter x = Aucun et définir x directement dans initializizex (CLS) ?


0 commentaires

3 Réponses :


1
votes

Dans le constructeur de classe, vous pouvez écrire un chèque si l'attribut de classe a été créé déjà

if Test.x is None:
  # Do initialization


0 commentaires

0
votes

Une raison pour laquelle vous ne pouvez pas faire quelque chose comme ça? XXX


3 commentaires

Je pourrais le faire, mais j'aimerais que la classe puisse fonctionner à chacune d'elles-mêmes, alors que je fais quelque chose comme ça à partir de classes import test Je n'ai pas à importer la fonction également.


Vous n'auriez pas à importer l'autre fonction. Si vous avez importé test dans un autre module, la classe appelle toujours _new_x sans que vous n'ayez pas besoin de l'importer.


Je ne savais pas que, mais toujours dans un fichier avec plusieurs classes, je pense que cela créerait un gâchis ayant des fonctions en dehors d'eux. Bon à savoir que j'ai cette option pourrait être utile dans un autre cas.



0
votes

Vous pouvez initialiser (et définir)-le au niveau de la classe.

5
5
10
10


0 commentaires