
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 互相不兼容 |