gpt4 book ai didi

Python 2.7 方法解析顺序覆盖

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:34 26 4
gpt4 key购买 nike

我在 Python 中使用多重继承时遇到一些问题,无法理解我做错了什么。

我有如下定义的三个类 A、B、C 它不起作用。

class A(object):
def __init__(**kwargs):
.
.

class B(object):
def __init__(**kwargs):
# prepare a dictionary "options" with the options used to call A
super(B,self).__init__(**options)

def coolmethod(x):
#some cool stuff

对于 A 和 B,我没有任何问题。

我想创建一个继承自 A 和 B 的第三类 C这样我就可以使用 B 中定义的 coolmethod,但想使用 A 中定义的构造函数。

尝试定义 class C(A,B) 不起作用,因为未定义 MRO。

但是定义 class C(B,A) 不允许我使用 A.init 而不是 B.init

我该如何解决这个问题?

最佳答案

您可以直接调用 A.__init__() 而不是在 C: 中使用 super()

class C(B,A):
def __init__(self, **kwargs):
A.__init__(self, **kwargs)

关于Python 2.7 方法解析顺序覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16283137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com