2012-09-24 16 views
30

Así que si tengo una clase:Llamar a un constructor de la clase padre de un niño de clase en Python

class Person(object): 
'''A class with several methods that revolve around a person's Name and Age.''' 

    def __init__(self, name = 'Jane Doe', year = 2012): 
     '''The default constructor for the Person class.''' 
     self.n = name 
     self.y = year 

Y luego esta subclase:

class Instructor(Person): 
'''A subclass of the Person class, overloads the constructor with a new parameter.''' 
    def __init__(self, name, year, degree): 
     Person.__init__(self, name, year) 

estoy un poco perdido sobre cómo llegar la subclase para llamar y usar el constructor de la clase padre para name y year, mientras agrega el nuevo parámetro degree en la subclase.

+3

¿Cuál es el problema con lo que tienes? – BrenBarn

+0

lo que estás haciendo debería estar bien ... –

+0

Oh, vale, no estaba seguro y no pude encontrar la manera de probarlo ... Veo que estaba en lo cierto todo el tiempo ... mis disculpas. –

Respuesta

53

Python recomienda usar super().

Python 2:

super(Instructor, self).__init__(name, year) 

Python 3:

super().__init__(name, year) 
+2

Eso debería ser 'super (Instructor, ...)'. –

Cuestiones relacionadas