我是靠谱客的博主 文静裙子,最近开发中收集的这篇文章主要介绍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')
报错:
![](https://file2.kaopuke.com:8081/files_image/2023062421/0a6ecafb589dc40263cd3147ec740d11.png)
显示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‘出错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复