Python 从子类访问超类成员的方法 object
Python way of accessing superclass members from a subclass object
注意:我发现这是另一个线程中的重复和附加答案,所以我链接到它以防你想看到这两个。
Calling base class method in Python
注意:由于未正确说明所需内容,此问题标题已更改。以前的标题是:Python 将 subclasses 转换为 superclasses
的等效方法
我正在想办法模拟(因为据我所知 Python 不支持它)class object 铸造。例如,假设我有 2 个 classes,sup 和 sub:
class sup()
...
def method(self):
...
class sub(sup):
...
def method(self):
...
我知道,由于方法存在于 superclass 和 subclass 中,它将被覆盖。但我想实现这样的目标:
sub obj()
((sup) sub).method()
为了调用 superclass 方法而不是 subclass 方法。在 Java 中我会那样做,但我已经阅读并且 python 没有这个功能(如果我错了请纠正我,这是我到目前为止调查过的)所以我是正在寻找一种等效的方法。
您可以将当前对象传递给Base Class:
o = sub()
sup.method(o) # this will call method of the base class
另一个提示:在 python 中,通常用大写形式编写类型,因此在您的示例 Sub
和 Sup
中,请参阅 PEP8
注意:我发现这是另一个线程中的重复和附加答案,所以我链接到它以防你想看到这两个。
Calling base class method in Python
注意:由于未正确说明所需内容,此问题标题已更改。以前的标题是:Python 将 subclasses 转换为 superclasses
的等效方法我正在想办法模拟(因为据我所知 Python 不支持它)class object 铸造。例如,假设我有 2 个 classes,sup 和 sub:
class sup()
...
def method(self):
...
class sub(sup):
...
def method(self):
...
我知道,由于方法存在于 superclass 和 subclass 中,它将被覆盖。但我想实现这样的目标:
sub obj()
((sup) sub).method()
为了调用 superclass 方法而不是 subclass 方法。在 Java 中我会那样做,但我已经阅读并且 python 没有这个功能(如果我错了请纠正我,这是我到目前为止调查过的)所以我是正在寻找一种等效的方法。
您可以将当前对象传递给Base Class:
o = sub()
sup.method(o) # this will call method of the base class
另一个提示:在 python 中,通常用大写形式编写类型,因此在您的示例 Sub
和 Sup
中,请参阅 PEP8