descriptor ‘__init__‘ requires a ‘super‘ object but received a ‘str‘出错

学习继承时,用super时TypeError: descriptor '__init__' requires a 'super' object but received a 'str'

代码如下:

#继承

class  yeye():#不用继承,一般不用()
    def __init__(self,name,age):
       self.name=name
       self.age=age
    def info(self):
        print(self.name,self.age)

class baba(yeye):
    def __init__(self,name,age,score):
        super.__init__(name,age)#继承上面的name,age
        self.score=score
    def a(self):
        print('1yue31ruxuexijicheng')

class baba2(yeye):
    def __init__(self, name, age, teacherofyears):
        super._init__(name, age)  # 继承上面的name,age
        self.teacherofyears = teacherofyears

    def a(self):
        print('1yue31ruxuexijicheng')

报错:

显示12行错误

错误信息是描述符‘__init__’需要一个‘super’对象,但接收到一个‘str’。原因就是代码写错了--少括号,没注重细节,解决办法,将上面18行代码改下便可以了:

我按照教学视频写的,还是太粗心了。

查了下super()

super()用来调用父类(基类)的方法,__init__()是类的构造方法,

super().__init__() 就是调用父类的init方法, 同样可以使用super()去调用父类的其他方法

详细介绍见:python中super().__init__()--https://blog.csdn.net/a__int__/article/details/104600972

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉城美金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值