Dato una classe Python che verrà istanziata una sola volta, cioè ci sarà solo un oggetto della classe. Mi chiedevo in quali casi avesse senso creare una singola istanza di classe invece di lavorare direttamente con la classe.
C'è un simile una-istanza , ma ha un focus diverso:
- si tratta del raggruppamento di variabili e funzioni globali in una classe e
- Non è specifico di Python. Quest'ultimo significa che non considera il fatto che le classi (in Python) siano anche oggetti.
UPDATE:
In Python, posso fare quanto segue sia con le classi sia 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 è raggruppare codice e dati correlati e avere un'interfaccia ad esso. Questo è il motivo per cui l'ho inizialmente 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.