Étant donné une classe Python qui ne sera instanciée qu'une seule fois, c'est-à-dire qu'il n'y aura qu'un seul objet de la classe. Je me demandais dans quels cas il était logique de créer une instance de classe unique au lieu de travailler directement avec la classe à la place.
Il y a une question similaire , mais elle a un objectif différent:
- il s'agit de regrouper les variables et fonctions globales dans une classe et
- Ce n'est pas spécifique à Python. Ce dernier signifie qu'il ne tient pas compte du fait que (en Python) les classes sont également des objets.
METTRE À JOUR:
En Python, je peux faire ce qui suit avec les classes et les objets:
class A(object):
pass
A.some_state_var = True
# Then later
A.some_state_var = False
my_a = A()
my_a.some_state_var = True
# Then later
my_a.some_state_var = False
Je ne vois donc pas comment le choix entre une classe et une instance de cette classe concerne l'état (en Python). Je peux maintenir un état avec l'un ou l'autre.
En outre, la motivation pour créer ma classe / instance de classe ne consiste pas à appliquer une exigence Singleton.
De plus, il ne s'agit pas tant de créer un nouveau type.
La motivation est de regrouper le code et les données connexes et d'avoir une interface avec eux. C'est pourquoi je l'ai initialement modélisé en tant que classe dans un diagramme de classes. Ce n'est que pour l'implémentation que j'ai commencé à me demander s'il fallait instancier cette classe ou non.