Конечно, Student
может иметь свой собственный инициализатор. Однако класс может иметь только один инициализатор в Python, потому что это специальный метод, вызываемый в конструкторе (метод класса __new__
).
Итак, когда мы говорим, что подкласс имеет свой собственный инициализатор, мы действительно имеем в виду что-то вроде этого:
class Worker(People):
def __init__(self, company):
self.company = company
Как указал @IanH, вам не нужно вызывать инициализатор суперкласса.
И когда вы думаете, что должны вызывать его (возможно, для некоторой общей инициализации), вы можете сделать это так:
class People:
def __init__(self, name):
self.name = name
class Student(People):
def __init__(self, name, school):
super(Student, self).__init__(name)
self.school = school