尝试创建 multiprocessing.Queue 的子类时出现 Python 3.1x TypeError 问题

问题描述 投票:0回答:1

我尝试像为“queue.Queue”所做的那样创建“multiprocessing.Queue”的继承子类,但出现错误:

Traceback (most recent call last):
  File "f:\d\multiprocessing-samples\test.py", line 4, in <module>
    class DataMultiProcQueue(multiprocessing.Queue):
TypeError: method expected 2 arguments, got 3

这是重现此错误的代码,我测试了 python3.10,11,12 存在该错误

import multiprocessing


class DataMultiProcQueue(multiprocessing.Queue):
    def __init__(self):
        super().__init__(self)


if __name__ == "__main__":
    my_queue = DataMultiProcQueue()

    my_queue.put(1)
    print(my_queue.get())

我错过了什么吗?

谢谢,

口香糖

python multiprocessing
1个回答
0
投票

multiprocessing.Queue
实际上是
Queue
类实例的
multiprocess.context.DefaultContext
工厂方法。

真正的

Queue
课程是
multiprocessing.queues.Queue

© www.soinside.com 2019 - 2024. All rights reserved.