1、今天,学习子类的__init__()方法的时候报了一个错误:TypeError: descriptor '__init__' requires a 'super' object but received a 'str',具体代码如下:
#子类的方法__init__()
class Person():
"""一个人类,作为父类"""
def __init__(self,name,age,sex):
"""父类初始化方法"""
self.name = name;
self.age = age;
self.sex = sex;
def get_desc_info(self):
print("姓名为:" + self.name + ",年龄为:" + str(self.age) + ",性别为:" + self.sex);
class Student(Person):
"""一个学生类,作为子类"""
def __init__(self,name,age,sex):
"""子类初始化方法"""
super.__init__(name,age,sex);
student = Student('林梓然',26,'男');
student.get_desc_info();
运行后报如下图所示:
2、原因和解决办法:
Traceback错误提示18行,super.__init__(name,age,sex); 这一行代码出现问题,错误信息是描述符‘__init__’需要一个‘super’对象,但接收到一个‘str’。原因就是代码写错了,没注重细节,解决办法,将上面18行代码改下便可以了:
super().__init__(name,age,sex);
运行后便正常输出了:
---------------------
作者:茕夜
来源:优快云
原文:https://blog.youkuaiyun.com/u012561176/article/details/81984946
版权声明:本文为博主原创文章,转载请附上博文链接!