Saltar al contenido

método python __init__ en la clase heredada

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *