J'ai une classe sous-jacente que je veux placer dans certains codes. Je veux seulement que cela soit instancié ou commencé une fois pour une application donnée bien que cela puisse être appelé plusieurs fois. Le problème avec le code ci-dessous est que LowClass est démarré encore et encore. Je veux seulement qu'il démarre une fois par test. Merci d'avoir souligné mon problème !! p> p>
5 Réponses :
Recherchez "Singleton modèle". Cela ressemble à Python que vous avez affaire, vous pourriez donc avoir à rechercher un peu plus fort. Maintenant, il y a beaucoup d'exemples en C ++. P>
Ce dont vous avez besoin est d'implémenter le singleton modèle de conception en python p>
J'ai trouvé ce Mise en œuvre J'espère que cela aide p>
Je crois que le problème du code montré est que vous définissez self.active = true code>. Cela créera un attribut pour l'instance et définir que
true code>, alors que je pense que vous souhaitez définir l'actif de la classe elle-même sur
vrai code>. Ainsi, au lieu de
self.active = true code>, essayez
auto .__ classe __. Actif = true code>. P>.
Lorsque vous importez un module à Python, il est naturel singleton. Par example, dans util.py, vous avez:
from util import g_my_obj
Beaucoup plus clair et plus facile que d'autres réponses et n'a pas besoin d'une classe personnalisée pour l'atteindre
Avec le nom propre dans la main - "singleton" - il y a maintenant un certain nombre de questions discutant de ce sujet à ce sujet (comme Alex Martelli's Borg Standing, et alii). Votez pour étrier maintenant que l'intérêt ait approprié terme pour le modèle de conception.