Python:你怎么记得'super`';谁的论点?
正如标题所说,您如何记住Python:你怎么记得'super`';谁的论点?,python,super,Python,Super,正如标题所说,您如何记住super参数的顺序?有没有我错过的记忆法 经过多年的Python编程,我仍然需要查找:( (作为记录,它是super(Type,self))我不知道。在Python3中,我们只需编写 super().method(params) 继承让我想到一个分类层次结构。super的参数顺序是层次结构的:首先是类,然后是实例 另一个灵感来自~unutbu的答案: class Fubb(object): def __init__(self, *args, **kw):
super
参数的顺序?有没有我错过的记忆法
经过多年的Python编程,我仍然需要查找:(
(作为记录,它是
super(Type,self)
)我不知道。在Python3中,我们只需编写
super().method(params)
继承让我想到一个分类层次结构。
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.
只需记住,
self
是可选的-super(Type)
允许访问未绑定的超类方法-可选参数总是排在最后。通常,super
在类的定义中使用,超级
的第一个参数应该始终是类
的名称
class Foo(object):
def __init__(self,*args,**kw):
super(Foo,self).__init__(*args,**kw)
有趣。仍然在Python2.6上,所以还没有看到这一点(虽然我现在不确定我是否认为这
看起来更优雅/正确)啊,也很有趣-我没有意识到这一点。