Sto ponendo questa domanda riguardo a Python, sebbene sia probabilmente applicabile alla maggior parte delle lingue OOP.Creazione di una classe Python per "una sola istanza"?
Quando mi aspetto di utilizzare il modello di dati solo una volta in qualsiasi programma, potrei creare una classe con metodi/attributi statici di classe o semplicemente creare una classe regolare e creare un'istanza una sola volta e utilizzare solo quella copia. In questo caso, quale metodo è migliore e perché?
Con python, potrei anche scrivere un modulo e usarlo come farei in una classe. In questo caso, qual è il modo migliore e perché?
Esempio: voglio avere una struttura dati centrale per accedere/salvare dati in file. modo
Modulo:
data.py
attributes = something
...
def save():
...
main.py
import data
data.x = something
...
data.save()
modo Classe:
class Data:
attributes = something
@classmethod
def save(cls):
Data.x = something
Data.save()
modo istanza
class Data:
def save(self):
data = Data()
data.x = something
data.save()
Perché il downvote? Questa è una domanda di programmazione legittima. – darkfeline
ricerca stackoverflow per 'singleton python' – warvariuc
La domanda rivista è molto meglio. Non penso che una chiusura (eccetto un duplicato) sia attualmente giustificata. –