Data una classe Python che verrà istanziata una sola volta, cioè ci sarà un solo oggetto della classe. Mi chiedevo in quali casi ha senso creare una singola istanza di classe invece di lavorare direttamente con la classe.
C'è una domanda simile , ma ha un focus diverso:
- si tratta di raggruppare variabili e funzioni globali in una classe e
- Non è specifico di Python. Quest'ultimo significa che non considera il fatto che (in Python) anche le classi siano oggetti.
AGGIORNARE:
In Python, posso fare quanto segue sia con le classi che con gli oggetti:
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
Quindi non vedo come la scelta tra una classe e un'istanza di quella classe riguardi lo stato (in Python). Posso mantenere uno stato con uno dei due.
Inoltre, la motivazione per creare la mia istanza di classe / classe non riguarda l'applicazione di un requisito Singleton.
Inoltre, non si tratta tanto di creare un nuovo tipo.
La motivazione è quella di raggruppare codice e dati correlati e avere un'interfaccia ad esso. Questo è il motivo per cui inizialmente l'ho modellato come una classe in un diagramma di classe. Solo quando si è arrivati all'implementazione ho iniziato a chiedermi se creare un'istanza di questa classe o meno.