如何指定函数中的multiprocessing Manager().Queue()类型



我有一个函数,它将'Manager((.queue(1('中的一个队列作为参数。我想用这样的东西来注释我的函数:

def myfunction(queue: ManagerQueue) -> None:
pass

我知道我可以使用Callable,但我认为这没有多大意义。

有什么办法这样做吗?

我真的分不清你是否在传入:

  • multiprocessing.Manager().Queue(1)
  • multiprocessing.Manager().Queue

第一个选项会给你

import multiprocessing
from multiprocessing.queues import Queue
def myfunction(queue: Queue) -> None:
pass
if __name__ == "__main__":
myfunction(multiprocessing.Manager().Queue())

第二种选择

import multiprocessing
from collections import Callable
from multiprocessing.queues import Queue
def myfunction(queue_creator: Callable[[int], Queue]) -> None:
my_queue = queue_creator(1)
if __name__ == "__main__":
myfunction(multiprocessing.Manager().Queue)

希望这能回答你的问题。如果还有什么不清楚的地方,请告诉我。

最新更新