我是靠谱客的博主 文静裙子,这篇文章主要介绍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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复