Python:如何记住`super`的参数顺序?
正如标题所说,你是怎么记住super
的参数顺序的?有没有什么记忆法我没发现的?
经过多年的Python编程,我还是得查资料 :(
顺便说一下,它的格式是super(Type, self)
。
4 个回答
5
我不这样做。在Python 3中,我们可以直接写
super().method(params)
10
简单来说,self
是 可选的 - super(Type)
可以让你访问未绑定的父类方法 - 而可选参数总是放在最后面。
11
继承让我想到一种分类层级。在调用super
的时候,参数的顺序也是有层级的:先是类,然后是实例。
还有一个想法,灵感来自于~unutbu的回答:
class Fubb(object):
def __init__(self, *args, **kw):
# Crap, I can't remember how super() goes!?
构建正确的super()
调用的步骤。
__init__(self, *args, **kw) # Copy the original method signature.
super(Fubb).__init__(self, *args, **kw) # Add super(Type).
/
-------
/
super(Fubb, self).__init__(*args, **kw) # Move 'self', but preserve order.