我必须定义一个继承自另一个类的类(称为ABC
)(称之为SuperABC
)。我继承自(SuperABC
)的类有一个我需要使用的方法(让我们称之为func
)。但问题是我必须在类func
中定义一个具有相同名称的方法(即ABC
),该方法调用func
类的SuperABC
方法并执行其他操作。我意识到如果我可以从func
继承SuperABC
方法但是使用不同的别名,我可以解决此问题。是否可以这样做?
目前我刚刚从func
类复制了SuperABC
方法,将其添加到ABC
类并将其名称更改为_func
。还有其他办法吗?
最后,我研究了super
的用法。但是根据我的阅读,如果我只从一个类继承该方法,super
看起来可以解决当前问题。如果我继承自SuperABC
和BatABC
并希望通过更改名称在func
类的func
方法中使用他们的ABC
方法,该怎么办?或任何其他方法?是否可以这样做?
答案 0 :(得分:2)
你可能意味着这样的事情:
information_schema
如果你想摆脱原始class ABC(SuperABC):
def _func(*args, **kwargs):
return SuperABC.func(*args, **kwargs)
添加的实际继承:
func
执行第二步的另一种方法是在 def func(*args, **kwargs):
return
阶段更改func
,但如果不仔细完成,则可能会覆盖其中的其他内容。
如果要从2个不同的类继承2 __init__
(并且func
在两者中都是相同的名称),则必须先定义一个中间类,首先更改其中一个的名称
答案 1 :(得分:0)
转发电话。
def _func(*args, **kwargs):
return func(*args, **kwargs)
答案 2 :(得分:0)
如果您需要以这种方式执行此操作:
subclass_function_name = super().parentfunctionname
如果您使用的是Python 2,则需要在super()中添加args。请注意,这是对