Python打字与未来
我很高兴使用Python3中的模块。另外,我很高兴使用而不是Python打字与未来,python,future,python-asyncio,typing,concurrent.futures,Python,Future,Python Asyncio,Typing,Concurrent.futures,我很高兴使用Python3中的模块。另外,我很高兴使用而不是twisted,tornado和替代品 我的问题是如何正确地定义协同程序的结果 我们是不是该说这只是一次合作?例1: async def request() -> asyncio.Future: pass 或者我们应该将协程结果的类型定义为返回值的类型吗?例2: async def request() -> int: pass 如果是的话,那么如何用普通函数,哪些返回期货?例3: def request(
twisted
,tornado
和替代品
我的问题是如何正确地定义协同程序的结果
我们是不是该说这只是一次合作?例1:
async def request() -> asyncio.Future:
pass
或者我们应该将协程结果的类型定义为返回值的类型吗?例2:
async def request() -> int:
pass
如果是的话,那么如何用普通函数,哪些返回期货?例3:
def request() -> asyncio.Future:
f = asyncio.Future()
# Do something with the future
return f
这条路对吗?那么我们如何判断未来的结果呢?正如@jonrsharpe所说,非常适合这项任务。一般来说,您应该定期返回值(例如
int
,float
,bool
,None
等等),但如果您将其用作可调用项,则应该如下所示:
async def bar(x: int) -> str:
return str(x)
cbar: Callable[[int], Awaitable[str]] = bar
有关详细信息:
您也可以查看这一点以获得
mypy
支持。使用通用版本,例如,谢谢,这是一种完美的函数类型,是的,这是正确的。但问题只是关于函数的返回类型。无论如何,谢谢你