Dada una clase de Python que se instanciará solo una vez, es decir, solo habrá un objeto de la clase. Me preguntaba en qué casos tiene sentido crear una sola instancia de clase en lugar de trabajar directamente con la clase.
Hay una pregunta similar , pero tiene un enfoque diferente:
- se trata de agrupar variables y funciones globales en una clase y
- No es específico de Python. Esto último significa que no considera el hecho de que (en Python) las clases también son objetos.
ACTUALIZAR:
En Python, puedo hacer lo siguiente con clases y objetos:
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
Entonces, no veo cómo la elección entre una clase y una instancia de esa clase se trata del estado (en Python). Puedo mantener un estado con cualquiera de los dos.
Además, la motivación para crear mi clase / instancia de clase no se trata de hacer cumplir un requisito de Singleton.
Además, no se trata tanto de crear un nuevo tipo.
La motivación es agrupar código y datos relacionados y tener una interfaz para ello. Es por eso que inicialmente lo modelé como una clase en un diagrama de clase. Solo cuando se trataba de la implementación comencé a preguntarme si crear una instancia de esta clase o no.