Articles of singleton

¿Cuándo usar un Singleton en python?

Hay muchas preguntas relacionadas con el uso del patrón Singleton en python, y aunque esta pregunta podría repetir muchos de los aspectos ya discutidos, no he encontrado la respuesta a la siguiente pregunta específica. Supongamos que tengo una clase MyClass que quiero instanciar solo una vez exactamente. En Python puedo hacer esto de la siguiente […]

¿Generador de python Singleton? O, pickle un generador de python?

Estoy usando el siguiente código, con generadores nesteds, para iterar sobre un documento de texto y devolver ejemplos de capacitación usando get_train_minibatch() . Me gustaría persistir (encurtir) los generadores, para poder volver al mismo lugar en el documento de texto. Sin embargo, no se pueden encoger los generadores. ¿Existe una solución alternativa sencilla para poder […]

Única instancia de clase en Python

Estoy creando una aplicación Python que incluye comunicación de socket con un servidor. Me gustaría tener un módulo que pueda usarse en toda mi aplicación (varios otros módulos). Actualmente mi módulo se ve así: class SocketCommunication: def __init__(self): self.socketIO = SocketIO(settings.ADDRESS, settings.PORT, Namespace) def emit(self, message, data): json_data = json.dumps(data.__dict__) self.socketIO.emit(message, json_data) class Namespace(BaseNamespace): def […]

Asegúrese de que solo se ejecute una instancia de una clase

Tengo una clase subyacente que quiero colocar en algún código. Solo quiero que se cree una instancia o que se inicie una vez para una aplicación determinada, aunque podría llamarse muchas veces. El problema con el código siguiente es que LowClass se inicia una y otra vez. Solo quiero que empiece una vez por prueba […]

Necesito entender el flujo de __init__, __new__ y __call__

class Singleton(type): def __init__(self, *args, **kwargs): print ‘calling __init__ of Singleton class’, self print ‘args: ‘, args print ‘kwargs: ‘, kwargs super(Singleton, self).__init__(*args, **kwargs) self.__instance = None def __call__(self, *args, **kwargs): print ‘running __call__ of Singleton’, self print ‘args: ‘, args print ‘kwargs: ‘, kwargs, ‘\n\n’ if self.__instance is None: self.__instance = super(Singleton, self).__call__(*args, **kwargs) […]

Python: @staticmethod con @property

quiero Stats.singleton.twitter_count += 1 y pensé que podía hacer class Stats: singleton_object = None @property @staticmethod def singleton(): if Stats.singleton_object: return Stats.singleton_object Stats.singleton_object = Stats() return Stats.singleton() Pero lanza una excepción: >>> Stats.singleton.a = “b” Traceback (most recent call last): File “”, line 1, in TypeError: ‘property’ object has only read-only attributes (assign to .a)

Método de metaclase de Python3 Singleton no funciona

Vi muchos métodos para hacer un singleton en Python e intenté usar la implementación de metaclase con Python 3.2 (Windows), pero no parece que devuelva la misma instancia de mi clase de singleton. class Singleton(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls] class […]

Sentido de Python / instanciación de objetos

Estoy aprendiendo Python y he estado tratando de implementar una clase de tipo Singleton como prueba. El código que tengo es el siguiente: _Singleton__instance = None class Singleton: def __init__(self): global __instance if __instance == None: self.name = “The one” __instance = self else: self = __instance Esto funciona en parte, pero la parte self […]

¿Qué tal tener un SingletonModel en Django?

Estoy haciendo un sitio web muy simple en Django. En una de las páginas hay una checkbox vertical. Necesito darle al cliente una forma de editar el contenido de la casilla de HTMLField como un campo HTMLField . La primera forma que se me ocurrió fue hacer un Ticker modelo que solo tendrá una instancia. […]

Se unen las cuerdas en Python

¿Python tiene un grupo de todas las cadenas y están (cadenas) singletons allí? Más preciso, en el siguiente código se crearon una o dos cadenas en la memoria: a = str(num) b = str(num) ?