Articles of init

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

¿Cuál es el significado de las expresiones ‘self’ y ‘__init__’ en Python?

¿No entiendo para qué se usan estos, particularmente el self argumento? ¿Podrían algunos explicarme esto y por qué demonios querrían pasar esto? Además, siempre he pensado que __init__ era para la “inicialización”, pero no se me ocurrió que nunca antes había tenido que poner nada aquí. ¿Podría alguien darme un ejemplo fácil? edición: me confundo […]

¿Puedo tener dos funciones de inicio en una clase de python?

Estoy transfiriendo un código java de geolocalización de http://janmatuschek.de/LatitudeLongitudeBoundingCoordinates#Java (que se muestra a continuación) a python. Se puede inicializar usando dos funciones (desde grados o desde radios). Pensé que podría hacer algo como class geoLocation: _radLat = 0 _radLong = 0 _degLat = 0 _degLong = 0 def fromDegrees(lat, long): #set _radLat, _radLong, _degLat, _degLong […]

Linux bloqueando señales a Python init

Este es un seguimiento de mi otro post Instalación del controlador de señales con Python . En resumen, Linux bloquea todas las señales a PID 1 (incluido SIGKILL) a menos que Init haya instalado un controlador de señales para una señal en particular; como para evitar el pánico del kernel si alguien enviara una señal […]

Python2 y Python3: __init__ y __new__

He leído otras preguntas que explican la diferencia entre __init__ y __new__ pero no entiendo por qué en el siguiente código con python 2: init y Python3: new init El código de muestra: class ExampleClass(): def __new__(cls): print (“new”) return super().__new__(cls) def __init__(self): print (“init”) example = ExampleClass()

Usando objetos propios del módulo en __main__.py

Estoy tratando de acceder a los datos de un módulo desde su __main__.py . La estructura es la siguiente: mymod/ __init__.py __main__.py Ahora, si __init__.py una variable en __init__.py como esta: __all__ = [‘foo’] foo = {‘bar’: ‘baz’} ¿Cómo puedo acceder a foo desde __main__.py ?

¿Hay alguna razón para elegir __new__ sobre __init__ al definir una metaclase?

Siempre he configurado metaclases como esta: class SomeMetaClass(type): def __new__(cls, name, bases, dict): #do stuff here Pero acabo de encontrar una metaclase que fue definida así: class SomeMetaClass(type): def __init__(self, name, bases, dict): #do stuff here ¿Hay alguna razón para preferir uno sobre el otro? Actualización : tenga en cuenta que estoy preguntando sobre el […]

Python multi-herencia, __init__

Con respecto a la herencia múltiple, cuando llamo al super . __init__ , ¿por qué no se llama a la función __init__ de __init__ ? Gracias. class parent(object): var1=1 var2=2 def __init__(self,x=1,y=2): self.var1=x self.var2=y class parent2(object): var4=11 var5=12 def __init__(self,x=3,y=4): self.var4=x self.var5=y def parprint(self): print self.var4 print self.var5 class child(parent, parent2): var3=5 def __init__(self,x,y): super(child, […]

¿Cuál es la diferencia al escribir código en una clase y en def __init __ (self) en Python?

Posible duplicado: Variables dentro y fuera de una función de clase __init __ () Entiendo que cuando se llama a una clase, se ejecutará el código en __init__ antes que nada. Todavía no veo la diferencia entre eso, y escribir el código directamente debajo de la clase. Por ejemplo: class main(): x = 1 def […]

Python, __init__ y auto confusión

Muy bien, así que estaba echando un vistazo a alguna fuente cuando me encontré con esto: >>> def __parse(self, filename): … “parse ID3v1.0 tags from MP3 file” … self.clear() … try: … fsock = open(filename, “rb”, 0) … try: … fsock.seek(-128, 2) … tagdata = fsock.read(128) … finally: … fsock.close() … if tagdata[:3] == ‘TAG’: […]