什么是生產(chǎn)器
利用迭代器,我們可以每次迭代獲取數(shù)據(jù)(通過next()方法)時按照特定的規(guī)律進行生成。但是我們在實現(xiàn)一個迭代器時,關(guān)于當前迭代到的狀態(tài)需要我們自己記錄,進而才能根據(jù)當前狀態(tài)生產(chǎn)下一個數(shù)據(jù)。為了達到記錄當前狀態(tài),并配合next()函數(shù)進行迭代使用,我們可以采用更簡便的語法。即生成器(gennerator)。 生成器是一類特殊的迭代器
創(chuàng)建生成器的方法 1:將列表生成器 [ ] 改為()
代碼:
nums = [x*2 for x in range(10)]
print(nums)
nums = (x * 2 for x in range(10))
print(nums)
創(chuàng)建生成器的方法 2 :是用yield創(chuàng)建生成器
?
def creat_fobo(all_num):
current_num = 0
a,b = 0,1
while current_num <= all_num:
# 使用yield關(guān)鍵字
ret = yield a
print(">>>ret>>>",ret)
a,b = b ,a+b
current_num += 1
使用gevent完成多任務(wù)的實現(xiàn) (攜程)
def show_spawn(current_name):
for i in range(10):
print(current_name, i)
time.sleep(random.random())
gevent.joinall([
gevent.spawn(show_spawn, "jack"),
gevent.spawn(show_spawn, "tom")
])
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
