class Employee: def __init__(self,name,salary=0): self.name = name self.salary = salary def giveRaise(self,percent): self.salary=self.salary + (self.salary*percent) def work(self): print (self.name, "does stuff") def __repr__(self): return "<Employee: name=%s, salary=%s>"%(self.name, self.salary) class Chef(Employee): def __init__(self,name): Employee.__init__(self.name,50000) def work(self): print(self.name,'makes food')
Я не понимаю принципа использовать перегрузку __init__ новых экземплярах класса типа Chef. Что нам дает вот этот кусок
def __init__(self,name): Employee.__init__(self.name,50000) def work(self):
Объясните плз логику. Я понимаю что :
1.объявляем конструктор класса что даст текущему экземпляру и всем его наследникам Name
2.идем в родительский класс,и берем от туда функция объявления Name и указывавем зп в 50000
3 ????
Так что-ли?
То-ли я пока писал все понял, то-ли еще больше запутался в этих обертках) Это типа мы берем __init__ у родителя чтобы что? Чтобы не писать еще раз объявление переменных в классе?