首页 > 技术文章 > Python super(Todo,self).__init__() TypeError: super() argument 1 must be type, not classobj

vercont 2018-10-07 16:01 原文

示例如下

class A():
     def __init__(self):pass

class B(A):
     def __init__(self):
           super(A, self).__init__()

当调用B创建对象时,会出现错误

TypeError: super() argument 1 must be type, not classobj

python中的super只能应用于新类,而不能应用于经典类。
新类的意思大概就是要有父类。
例如

class B(A):

经典类就是没有父类的类
例如

class A():

产生上面问题的原因就是对A类这个经典类调用了

super(A, self).__init__()

推荐阅读