Python TypeError: descriptor '__init__' requires a 'super' object but received a 'str' 错误

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012561176/article/details/81984946

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);

运行后便正常输出了:

猜你喜欢

转载自blog.csdn.net/u012561176/article/details/81984946