TypeError: __init__() takes 3 positional arguments but 4 were given

问题

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)
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值