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

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);
运行后便正常输出了:


--------------------- 
作者:茕夜 
来源:CSDN 
原文:https://blog.csdn.net/u012561176/article/details/81984946 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值