问题
class Employee:
def __init__(self, name, salary):
self.__name = name
self.__salary = salary
def print_info(self):
print(self.__name, self.__salary)
def get_name(self):
return self.__name
def set_name(self, name):
self.__name = name
class Manager(Employee):
def __init__(self, name, salary, level, employees):
super().__init__(name, salary)
self.__level = level
self.__employees = employees
def print_info(self):
print(self.__name, self.__salary, self.__level, self.__employees)
def get_level(self):
return self.__level
m = Manager('Karl', 4000, 2, ['Liz', 'Jack', 'Kim'])
m.print_info()
报错
<ipython-input-51-37f4878e7ec9> in __init__(self, name, salary, level, employees)
17
18 def __init__(self, name, salary, level, employees):
---> 19 super().__init__(self, name, salary)
20 self.__level = level
21 self.__employees = employees
TypeError: __init__() takes 3 positional arguments but 4 were given
解决方法
调用基类的__init__
函数时不需要传self
super().__init__(name, salary)