Articles of singleton

problema con singleton python call dos veces __init__

Tengo un singleton como este class Singleton: class __impl: def __init__(self): print “INIT” __instance = None def __init__(self): # Check whether we already have an instance if Singleton.__instance is None: Singleton.__instance = Singleton.__impl() # Store instance reference as the only member in the handle self.__dict__[‘_Singleton__instance’] = Singleton.__instance def __getattr__(self, attr): “”” Delegate access to implementation […]

Implementación de NoneType, razones y detalles

Recientemente leí en alguna parte que el valor especial None en python es un objeto singleton de su propia clase, específicamente NoneType . Esto se explica mucho, ya que la mayoría de los errores relacionados con None en Python producen AttributeError s en lugar de un especial “NoneError” o algo así. Dado que todos estos […]

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