Solución:
Hasta donde yo sé, eso no es posible, sin embargo, puede llamar al método init de la superclase, así:
class inheritedclass(initialclass):
def __init__(self):
initialclass.__init__(self)
self.attr3 = 'three'
Solo llama a los padres __init__
utilizando super
:
class inheritedclass(initialclass):
def __new__(self):
self.attr3 = 'three'
super(initialclass, self).__init__()
Recomiendo encarecidamente seguir las convenciones de nomenclatura de Python y comenzar una clase con una letra mayúscula, por ejemplo InheritedClass
y InitialClass
. Esto ayuda a distinguir rápidamente las clases de los métodos y las variables.
Primero que nada estas mezclando __init__
y __new__
, son cosas diferentes. __new__
no toma instanciaself
) como argumento, toma clase (cls
). En cuanto a la parte principal de tu pregunta, lo que tienes que hacer es usar super
para invocar superclase ‘ __init__
.
Tu código debería verse así:
class initialclass(object):
def __init__(self):
self.attr1 = 'one'
self.attr2 = 'two'
class inheritedclass(initialclass):
def __init__(self):
self.attr3 = 'three'
super(inheritedclass, self).__init__()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)