【发布时间】:2013-11-05 03:51:15
【问题描述】:
这显然是有原因的,但我没有足够的经验来识别它。
这是 Python docs 中给出的示例:
class C(B):
def method(self, arg):
super(C, self).method(arg) # Why do we have to mention 'C' again?
有没有一种方法可以在不依赖复制类“C”的名称的情况下从实例方法中“了解”类型?好像这个例子可能会导致类名被更新但超函数调用中的类型参数变得陈旧的情况?
【问题讨论】:
-
这可能是在 Py3 中允许
super().method(arg)的原因之一。 -
我认为在 py3 中不再是这种情况了
-
在 Python 3 中你可以直接说
super()。它需要在 Python 2 中根本不存在的编译时分析。 -
@martineau,
C是否有多个碱基并不重要。请注意,没有个碱基被传递给super()。 -
这已在 python 3 中修复,请参阅 stackoverflow.com/q/10482953/2647279 和 stackoverflow.com/questions/2771904/usage-of-python-3-super
标签: python python-2.7