Articles of init

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

¿Cuál es el propósito de llamar a __init__ directamente?

Me está costando entender el propósito de algunos códigos que he encontrado. El código tiene una clase Foo , que tiene un método __init__ que toma múltiples argumentos. Por lo que he aprendido de Python hasta ahora, al llamar a Foo(‘bar’) , pasará esta cadena como parámetro a __init__ (que creo que se supone que […]

Clase Numpy Matrix: atributos de constructor predeterminados para la clase heredada

Quiero implementar mi propia clase de matriz que hereda de la clase de matriz de numpy. el constructor de matriz de numpy requiere un atributo, algo como (“1 2; 3 4′”) . En contraste, mi constructor no debería requerir atributos y debería establecer un atributo predeterminado para el superconstructor. Eso fue lo que hice: import […]

¿Diferencia entre definir un miembro en __init__ para definirlo en el cuerpo de la clase en python?

Cual es la diferencia entre hacer class a: def __init__(self): self.val=1 a hacer class a: val=1 def __init__(self): pass

Herencia y método init en Python.

Soy principiante de python. No puedo entender la herencia y __init__() . class Num: def __init__(self,num): self.n1 = num class Num2(Num): def show(self): print self.n1 mynumber = Num2(8) mynumber.show() RESULTADO: 8 Esto esta bien. Pero reemplazo Num2 con class Num2(Num): def __init__(self,num): self.n2 = num*2 def show(self): print self.n1,self.n2 RESULTADO: Error. Num2 has no attribute […]