自我还是不自我



我不太明白在继承时调用super类方法时是否需要self参数,因为我在使用它时遇到了重复参数定义错误的问题。

代码基本上是:

class MyClass(ParentClass):
    def method(self, arg=None):
        arg=f(arg)
        super(MyClass, self).method(self, arg=None)

super调用中使用self,我得到:

TypeError:method()为关键字参数"arg"`获取了多个值

如果没有,它似乎有效,但我不知道我是否会错过我需要的任何副作用。是selfsuper语句中吗?

阅读文档!

以下是您应该如何使用super:

super(MyClass, self).method(arg=None)

您必须将self传递给super调用,而不是方法调用。

此外,如果您使用的是Python3,它甚至更简单:

super().method(arg=None)

不要在method的参数中显式提供self,这是不需要的。

在python 2中,在super的参数中仍然需要它。请注意,在python3中,这只是super()

最新更新