576*_*76i 7 type-hinting python-3.x python-3.6
使用 Python 3.6 或更新版本,我想键入一个函数myfunc,它返回一个 MyClass 的对象。
我如何暗示myqueue是一个充满MyClass对象的双端队列?
from collections import deque
global_queue = deque()
class MyClass:
pass
def myfunc(myqueue=global_queue) -> MyClass:
return myqueue.popleft()
for i in range(10):
global_queue.append(MyClass())
Run Code Online (Sandbox Code Playgroud)
Mic*_*x2a 10
在 Python 3.9 中,可以deque['MyClass']()直接使用。
如果您使用的是 Python 3.6.1 或更高版本,则可以使用typing.Deque:
from typing import Deque
from collections import deque
global_queue: Deque['MyClass'] = deque()
class MyClass:
pass
def myfunc(myqueue: Deque[MyClass] = global_queue) -> MyClass:
return myqueue.popleft()
for i in range(10):
global_queue.append(MyClass())
Run Code Online (Sandbox Code Playgroud)
或者,您可以global_queue = Deque['MyClass']()改为 - 在运行时,这将构造一个collections.deque对象。
如果您需要支持 Python 3.5,请安装第typing_extensions3 方库并执行from typing_extensions import Deque. 该库包含在打字模块首次添加到标准库之后添加的类型的向后移植。
| 归档时间: |
|
| 查看次数: |
1984 次 |
| 最近记录: |