class Temp(object):
a = 0
def __init__(self, afile):
self.b = afile
def deal(self):
pass
继承以上类:
class Stragety(Temp):
def __init__(self, afile):
super(Temp, self).__init__(afile)
提示出错:
builtins.TypeError: object.init() takes no parameters
明明有参数需求的嘛 - -!
1
lzjun 2016-06-07 15:27:43 +08:00
正确的继承姿势:
class Stragety(Temp): def __init__(self, afile): super(Stragety, self).__init__(afile) |
2
kingmo888 OP 问题已经解决。
python3 中,重载时 super 不需要参数了。 ``` super().__init__(afile) ``` 我自己搞混了 py2 和 py3 ,最近在两个版本之间来回切换 - -! |
3
kingmo888 OP 1 楼运行下来也是 ok 的。 T.T
|
4
lixiaohan 2016-06-07 15:59:18 +08:00
Temp 的 super 是 object, object 的 init 方法不需要参数, 提示里面已经说了, 你应该像 1 楼那样,
|
6
wodemyworld 2016-06-07 21:48:58 +08:00
@kingmo888 最好永远像 1L 这样写,免得 py2 、 3 互相不兼容
|