1、今天,学习子类的__init__()方法的时候报了一个错误:TypeError: descriptor '__init__' requires a 'super' object but received a 'str',具体代码如下:
class staff:
def __init__(self,name,id):
self.name=name
self.id=id
def print_info(self):
print(f"员工名字:{self.name},员工:{self.id}")
class FullTimeEmployee(staff):
def __init__(self, name, id,monthly_salary):
super.__init__(name,id)
self.monthly_salary=monthly_salary
def calculate_monthly_pay(self):
print(self.monthly_salary)
zs=FullTimeEmployee("张三","001",5000)
zs.print_info()
运行后报如下图所示:
2、原因和解决办法:
Traceback错误提示11行,super.__init__(name,age,sex); 这一行代码出现问题,错误信息是描述符‘__init__’需要一个‘super’对象,但接收到一个‘str’。原因就是代码写错了,没注重细节,解决办法,将上面11行代码改下便可以了:
super().__init__(name,id);
运行后便正常输出了: