gpt4 book ai didi

pycharm - 在Python3.6(尤其是PyCharm)中输入同质队列的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 10:41:40 24 4
gpt4 key购买 nike

我正在用 Python 3.6 编写一个分形生成器,并使用 multiprocessing.Queue 将消息从主线程传递给工作线程。这是我到目前为止所尝试过的,但 PyCharm 似乎无法推断从队列中获取的项目的属性类型:

from typing import NamedTuple, Any, Generic, TypeVar, Tuple
from multiprocessing import Process, Queue

T = TypeVar()


class Message(NamedTuple):
method: str
id: str
data: Any = None


class TypedQueue(Generic[T]):
def get(self) -> T:
...
def put(self, m: T) -> None:
...


MessageQ = TypedQueue[Message]


class FractalWorker(Process):
def __init__(self, work: MessageQ, results: MessageQ)
super().__init__()
self.work = work
self.results = results

@staticmethod
def make_queues() -> Tuple[MessageQ, MessageQ]:
work = cast(MessageQ, Queue())
results = cast(MessageQ, Queue())
return work, results

我希望 PyCharm 能够知道 self.work.get 结果的属性具有由 Message 类指定的类型。我还想知道是否有与此类似的类型提示队列的标准方法。

最佳答案

老问题,但我刚刚发现

P: "Queue[Path]" = Queue()

在 PyCharm 中使用 queue.Queuemultiprocessing.Queue

关于pycharm - 在Python3.6(尤其是PyCharm)中输入同质队列的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956422/

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