Python中多重继承的初始化

2024-06-01 02:01:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了以下python代码,其中一个类继承自两个父类。我试图理解这个类的构造函数

# wrapper.py:
#############
class EWrapper:
    def __init__(self):
        pass

...

# client.py
###########
class EClient(object):
    def __init__(self, wrapper):
        self.msg_queue = queue.Queue()
        self.wrapper = wrapper
        self.decoder = None
        self.reset()
....

# Test.py
#########
class TestApp(EWrapper, EClient):
    def __init__(self):
        EClient.__init__(self, self)

有没有人能对EClient.__init__(self, self)多解释一下?我不清楚两个self的用法。python如何知道哪个self是哪个

构建TestApp对象的过程是什么


Tags: 代码pyselfclientobjectqueueinitdef
2条回答

在调用EClient.__init__(self, self)中,第一个self变为EClient中的EClientdef __init__(self, wrapper):。接下来,如您所见,第二个self在该调用中绑定到wrapperTestApp继承EWrapper,因此它将自身用作EClientwrapper

初始化TestApp时,您使用的是EWrapperself,然后是EClient,因为这是类中定义的顺序

相关问题 更多 >