以下代码
class A:
def spam(self, a, b):
print('[A.spam] %r' % [a, b])
class B(A):
def spam(self, c, d):
# super().spam(c, d)
sup = super(self.__class__, self.__class__)
f = getattr(sup, 'spam')
f(self, c, d)
给予
>>> b = B()
>>> b.spam(3, 4)
[A.spam] [3, 4]
阅读后在“ super()。spam(c,d)”所在的位置 super, 没问题。是“ super(type,type)”让我感到困惑。它 给出对象sup(绑定的超级对象),通过它 可以访问超类的属性。我想 了解'super(type,object-or-type)'背后的逻辑 构造。看起来像上下文(例如,“。”的存在) 使用super()非常重要,它改变了super()的许多逻辑。
使用
Python 3.5.3,
Debian GNU / Linux 9.9(拉伸)