Articles of singleton

Proceso de cola de tareas asíncronas de la estructura de datos en memoria en Django

Tengo una estructura de datos en memoria singleton dentro de mi proyecto Django (algún tipo de kd-tree que necesita acceso en todo el proyecto). Para aquellos que no conocen Django, creo que el mismo problema aparecería con un código Python normal. Sé que es malo (Singleton), y estoy buscando mejores formas de implementar eso, pero […]

Google App Engine singletons (Python)

La forma estándar de hacer singletons en Python es class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs) return cls._instance Sin embargo, esto no funciona en App Engine, ya que puede haber muchos servidores y obtendríamos una instancia por servidor. Entonces, ¿cómo lo haríamos para una […]

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