Python 2.7 super error
本问题已经有最佳答案,请猛点这里访问。
我在Python2.7中创建了一个类。然后我创建了我创建的类的一个子类。为了定义子类的init,我使用了super函数,但是当我在python上运行它时,它给出了一条错误消息:
1 2 3 4 5 6 7 | class B: def __init__(self, l): self.p = l self.d = len(l) class C(B): def __init__(self, l): super(C,self).__init__(l) |
当我为输入的某个变量l运行c(l)时,它显示一条错误消息,如下所示:
1 2 3 4 5 6 | Traceback (most recent call last): File"<stdin>", line 1, in <module> File"class_sample.py", line 12, in __init__ super(C,self).__init__(l) TypeError: must be type, not classobj >>> |
根据关于
Note: super() only works for new-style classes.
你的
1 2 3 4 5 6 7 8 9 10 | class B(object): def __init__(self, l): self.p = l self.d = len(l) class C(B): def __init__(self, l): super(C,self).__init__(l) c = C([]) print c.d |