我是靠谱客的博主 文静裙子,最近开发中收集的这篇文章主要介绍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

最后

以上就是文静裙子为你收集整理的descriptor ‘__init__‘ requires a ‘super‘ object but received a ‘str‘出错的全部内容,希望文章能够帮你解决descriptor ‘__init__‘ requires a ‘super‘ object but received a ‘str‘出错所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部