Articles of singleton

Aplicar orden de método en un módulo de python

¿Cuál es la forma más pirónica de lidiar con un módulo en el que los métodos deben llamarse en un cierto orden? Como ejemplo, tengo una configuración XML que se debe leer antes de hacer cualquier otra cosa porque la configuración afecta el comportamiento. El parse_config() debe llamarse primero con el archivo de configuración proporcionado. […]

Singleton a través de módulos

Estoy tratando de implementar un Singleton y tengo dificultades cuando importo el módulo. Mi configuración es la siguiente. Estoy usando Python 2.7. MÓDULO 1 class SingletonClass(object): def __new__(self, *args, **kwargs): if not self._instance: self._instance = super(SingletonClass, self).__new__( self, *args, **kwargs) return self._instance print SingletonClass() #OUTPUT: 0x00000000030F1630 print SingletonClass() #OUTPUT: 0x00000000030F1630 (Good, what I want) Modulo […]

¿Hay una manera de crear subclases sobre la marcha?

Estoy creando un juego en el que tengo un método algo complejo para crear entidades. Cuando se carga un nivel, el código de carga lee un montón de archivos YAML que contienen atributos de todas las diferentes unidades posibles. Usando el archivo YAML, crea un objeto llamado EntityResource . Este objeto EntityResource sirve como fuente […]

Patrón singleton de python

alguien me puede decir por qué esto es incorrecto como patrón de singleton: class preSingleton(object): def __call__(self): return self singleton = preSingleton() # singleton is actually the singleton a = singleton() b = singleton() print a==b a.var_in_a = 100 b.var_in_b = ‘hello’ print a.var_in_b print b.var_in_a Edición: El código anterior se imprime: True hello 100 […]

¿Por qué funciona este patrón Python Borg / Singleton?

Me topé con la red y encontré estos interesantes códigos: http://code.activestate.com/recipes/66531/ class Borg: __shared_state = {} def __init__(self): self.__dict__ = self.__shared_state # and whatever else you want in your class — that’s all! Entiendo lo que es un singleton pero no entiendo ese código en particular cortado. ¿Podría explicarme cómo / donde “__shared_state” incluso se […]

¿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) […]