python使用super()出现错误解决办法
python使用super()出现错误解决办法
当我们在python的子类中调用父类的方法时,会用到super(),不过我遇到了一个问题,顺便记录一下。
比如,我写了如下错误代码:
class A():
def dosomething(self):
print "It's A"
class B(A):
def dosomething(self):
super(B, self).dosomething()
if __name__ == '__main__':
b = B()
b.dosomething()
输出报错:
TypeError: must be type, not classobj
google之后发现,python在2.2前后有新式类(new-style class)与旧式类(old-style class)的区别,我上面的例子为旧式类,而super关键字必须作用于新式类。
新式类:所有类都必须要有继承的类,如果什么都不想继承,就继承到object类。
所以,解决此错误必须将A类改为class A(object):
以上就是python super()使用遇到问题的解决办法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
Python Decorator装饰器的创建方法及常用场景分析
这篇文章主要介绍了Python Decorator装饰器的创建方法及常用场景,装饰器可以分成方法装饰器和类装饰器,他们的区别是一个是用函数实现的装饰器,一个是用类实现的装饰器,他们也都能在方法和类上进行装饰,需要的朋友可以参考下2022-07-07
Python使用Spire.PDF轻松实现PDF页面旋转功能
当我们在处理PDF文档时,经常会遇到页面方向不正确的问题,本文将为您揭示一个高效的解决方案,即使用 Python 旋转 PDF 页面,有需要的小伙伴可以了解下2025-11-11


最新评论