首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python类型和未来

Python类型和未来
EN

Stack Overflow用户
提问于 2017-07-15 15:52:00
回答 2查看 2.8K关注 0票数 2

我很高兴在Python3中使用typing模块,也很高兴使用asyncio而不是twistedtornado和alternatives。

我的问题是如何正确定义协程的结果?

我们应该说这只是一个协程吗?示例1:

代码语言:javascript
复制
async def request() -> asyncio.Future:
    pass

或者我们应该将协程的结果类型定义为返回值的类型?示例2:

代码语言:javascript
复制
async def request() -> int:
    pass

如果是,那么如何使用纯函数,哪些函数会返回期货?示例3:

代码语言:javascript
复制
def request() -> asyncio.Future:
    f = asyncio.Future()
    # Do something with the future
    return f

这是一条正确的道路吗?那么,我们如何判断未来的预期结果呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-16 00:47:02

正如@jonrsharpe所说,typing.Awaitable非常适合这项任务。

票数 2
EN

Stack Overflow用户

发布于 2017-07-16 03:28:40

一般来说,您应该常规返回值(如intfloatboolNone等),但如果您将其用作callable,则应如下所示:

代码语言:javascript
复制
async def bar(x: int) -> str:
    return str(x)

cbar: Callable[[int], Awaitable[str]] = bar

有关更多信息,请访问:here

您还可以查看此issue以获得对mypy的支持。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45115883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档