异步产生后,在“ continue”处会发生什么?

时间:2019-04-08 22:59:18

标签: python python-3.x asynchronous yield

一旦满足条件,以下代码段中的continue语句将暂停while循环。有人可以帮助我了解幕后情况吗?谢谢!

import asyncio

async def yield_even():
    count = 0
    while True:
        if count % 2 != 0:
            continue

        yield count

        if count > 5:
            break

        count += 1


async def main():
    async for i in yield_even():
        print(i)


if __name__ == "__main__":
    asyncio.run(main())

1 个答案:

答案 0 :(得分:1)

您在那里遇到了无限循环,因为在那种情况下您不递增count,并且一旦满足此特定条件,就永远满足了,因为没有代码将执行if。 / p>

如果您有基于计数器的迭代限制,也没有点fir while True循环。定期进行for