Python3,超级,无点,两个参数

时间:2019-07-10 17:43:59

标签: python-3.x debian super

以下代码

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(拉伸)

0 个答案:

没有答案