我有一个函数,它将'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)
希望这能回答你的问题。如果还有什么不清楚的地方,请告诉我。