在 Python 中调用基类方法

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4747397/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-18 17:20:18  来源:igfitidea点击:

Calling base class method in Python

pythonclass

提问by user225312

I have two classes A and B and A is base class of B.

我有两个类 A 和 B,A 是 B 的基类。

I read that all methods in Python are virtual.

我读到 Python 中的所有方法都是虚拟的。

So how do I call a method of the base because when I try to call it, the method of the derived class is called as expected?

那么如何调用基类的方法,因为当我尝试调用它时,派生类的方法会按预期调用?

>>> class A(object):
    def print_it(self):
        print 'A'


>>> class B(A):
    def print_it(self):
        print 'B'


>>> x = B()
>>> x.print_it()
B
>>> x.A ???

采纳答案by user225312

Using super:

使用超级

>>> class A(object):
...     def print_it(self):
...             print 'A'
... 
>>> class B(A):
...     def print_it(self):
...             print 'B'
... 
>>> x = B()
>>> x.print_it()                # calls derived class method as expected
B
>>> super(B, x).print_it()      # calls base class method
A

回答by primroot

Two ways:

两种方式:


>>> A.print_it(x)
'A'
>>> super(B, x).print_it()
'A'