【发布时间】:2020-06-29 09:16:56
【问题描述】:
注意:我发现这是一个重复的答案,并且是另一个线程中的附加答案,所以我链接到它以防你想同时查看。
Calling base class method in Python
注意:由于未正确说明所需内容,此问题的标题已更改。上一个标题是:将子类转换为超类的 Python 等效方法
我试图弄清楚如何模拟(因为据我所知 Python 不支持它)类对象转换。例如,假设我有 2 个类,sup 和 sub:
class sup()
...
def method(self):
...
class sub(sup):
...
def method(self):
...
我知道,由于方法存在于超类和子类中,它将被覆盖。但我想实现这样的目标:
sub obj()
((sup) sub).method()
为了调用超类方法而不是子类方法。在Java中我会这样做,但是我已经阅读并且python没有这个功能(如果我错了,请纠正我,这是我到目前为止所调查的)所以我正在寻找一种等效的方法来做这个.
【问题讨论】:
-
sup.method(obj).,恕我直言 -
我认为
((sup) sub).method()也不会跳过 Java 中的子实现,据我所知,这不是强制转换的工作方式。您能否提供一些context,您实际上想在这里做什么?为什么要跳过子实现?您在寻找例如super? -
@jonrsharpe:在 C# 中它只会调用基本方法(如果未定义为虚拟方法)
-
@DarrylG:我认为 OP 不想从子类调用它,而是从子类外部的代码调用它
标签: python subclass superclass