何时在Python中使用等待键?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了何时在Python中使用等待键?相关的知识,希望对你有一定的参考价值。
我目前正在尝试使用Python学习异步。我知道await关键字告诉循环它可以切换协程。但是,我什么时候应该实际使用它?为什么不把它放在一切前面呢?
另外,为什么等待在'response.text()'之前,为什么不在session.get(url)之前?
async def print_preview(url):
# connect to the server
async with aiohttp.ClientSession() as session:
# create get request
async with session.get(url) as response:
# wait for response
response = await response.text()
# print first 3 not empty lines
count = 0
lines = list(filter(lambda x: len(x) > 0, response.split('\n')))
print('-'*80)
for line in lines[:3]:
print(line)
print()
答案
您在文档中标记为协程的功能之前使用await
。例如,ClientResponse.text
标记为协程,而ClientResponse.text
则未标记,这意味着您等待前者而不必等待后者。如果您忘记等待协程,它将根本不会执行。
[ClientResponse.close
被隐式等待,因为它与ClientResponse.close
一起使用,它接受异步上下文管理器并自动等待其入口点返回的对象。
还要注意,等待并不是协程唯一可以做的事情,另一种是将协程转换成任务,从而使它们可以并行运行(在操作系统级别上没有额外的成本)。有关更多信息,请参阅asyncio上的session.get()
。
以上是关于何时在Python中使用等待键?的主要内容,如果未能解决你的问题,请参考以下文章
如何判断片段在 NavigationDrawer 中何时不可见