美文网首页
async await 和yield from

async await 和yield from

作者: 土豆特别想爬山 | 来源:发表于2020-05-19 19:19 被阅读0次

    yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。

    简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。

    asyncio 框架在python3.4之前用yield from,python3.5之后用async await。

    yield版本:

    @asyncio.coroutine

    def init(loop):

    app = web.Application(loop=loop)

        app.router.add_route('GET', '/', index)

        srv =yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000)

        logging.info('server started at http://127.0.0.1:9000')

        return srv

    async await 版本:

    async def init(loop):

    app = web.Application(loop=loop)

        app.router.add_route('GET', '/', index)

        srv =await loop.create_server(app.make_handler(), '127.0.0.1', 9000)

        logging.info('server started at http://127.0.0.1:9000')

        return srv

    async 和for一起使用,语法:

    async for TARGET in ITER:

        SUITE

    else:

        SUITE2

    async 和with一起使用,语法:

    async with EXPRESSION as TARGET:

        SUITE

    相关文章

      网友评论

          本文标题:async await 和yield from

          本文链接:https://www.haomeiwen.com/subject/shciohtx.html