J'ai la classe suivante note que x code> 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 code> 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 code> et définir x directement dans
initializizex (CLS) code>? P> P> P>
3 Réponses :
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
Une raison pour laquelle vous ne pouvez pas faire quelque chose comme ça?
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 code> Je n'ai pas à importer la fonction également.
Vous n'auriez pas à importer l'autre fonction. Si vous avez importé test code> dans un autre module, la classe appelle toujours
_new_x code> 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.
Vous pouvez initialiser (et définir)-le au niveau de la classe.
5 5 10 10