yield方法引入,
這裡存在的問題是,如果你想建立從0到1,000,000這樣乙個很大的序列,你不得不建立能容納1,000,000個整數的列表。
但是當加入了生成器之後,你可以不用建立完整的序列,你只需要能夠每次儲存乙個整數的記憶體即可。
import asyncio@asyncio.coroutine
def countdown(number, n):
while n > 0
:
yield
from asyncio.sleep(1
) print(
"t-minus
", n, "
({})
".format(number))
n -= 1
if n == 10 and number=="a"
: raise valueerror
loop =asyncio.get_event_loop()
tasks =[
asyncio.ensure_future(countdown("a
", 20
)), asyncio.ensure_future(countdown("b
", 33
)),]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
看**
import asyncio@asyncio.coroutine
def countdown(number, n):
while n > 0
:
yield
from asyncio.sleep(1
) print(
"t-minus
", n, "
({})
".format(number))
n -= 1
if n == 10 and number=="a"
: raise valueerror
loop =asyncio.get_event_loop()
tasks =[
asyncio.ensure_future(countdown("a
", 20
)), asyncio.ensure_future(countdown("b
", 33
)),]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
原理講的特別好
python3使用 python3使用模組
python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...
Python3 使用模組
python本身就內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def ...
python3 非同步 async with 用法
非同步上下文管理器指的是在enter和exit方法處能夠暫停執行的上下文管理器。為了實現這樣的功能,需要加入兩個新的方法 aenter 和 aexit 這兩個方法都要返回乙個 awaitable型別的值。非同步上下文管理器的一種使用方法是 class asynccontextmanager asyn...