web-dev-qa-db-fra.com

Appel d'un constructeur de classe parent à partir d'une classe enfant dans python

Donc, si j'ai une classe:

 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

Et puis cette sous-classe:

 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)

Je suis un peu perdu sur la façon d'appeler la sous-classe et d'utiliser le constructeur de classe parent pour name et year, tout en ajoutant le nouveau paramètre degree dans la sous-classe.

43
Daniel Love Jr

Python recommande d'utiliser super().

Python 2:

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

Python 3:

super().__init__(name, year)
67
vinnydiehl