python 基礎 yield 關鍵字用法

2021-10-09 22:13:20 字數 1033 閱讀 4800

python-基礎-yield 關鍵字用法

#!/usr/bin/env python3

# coding=utf-8

'''通過斐波那契數列生成,了解下 yield 關鍵字的使用:

yield 可返回乙個迭代器;

如果在for 迴圈中調動的方法中遇到 yield 關鍵字,則每次迴圈返回 yield 後面的結果,直至結束;

如果用 next() 方法呼叫,則需要自己控制迴圈次數;

'''#斐波那契

class fibonacci(int):

def __init__(self,num):

self.n = 1 if num<1 else num

print('init=',self.n)

def iterator(self):

if self.n>10:

print('n=%s 過大,迭代停止'%self.n)

return

n,a,b = 1,0,1;

while n<=self.n:

yield a

print('\niterator %s %a'%(n,a))

a,b = b,a+b

n+=1

def main():

num = 6

fib = fibonacci(num)

print('-'*30,'test1')

for n in fib.iterator():

print('fib=',n)

print('-'*30,'test12')

fib = fibonacci(num)

ie = fib.iterator()

i = 0

while ii+=1

n = next(ie)

print('fib=',n)

pass

if __name__ == '__main__':

main()

#testrandom()

pass

Python基礎 協程 yield關鍵字

乙個執行緒寫訊息,乙個執行緒取訊息,通過鎖機制控制佇列和等待,但一不小心就可能死鎖 生產者生產訊息後,直接通過yield跳轉到消費者開始執行,待消費者執行完畢後,切換回生產者繼續生產,效率極高 main.py usr bin env python3 coding utf 8 python基礎 協程 ...

Python的yield關鍵字

忽然得知python有個叫yield的關鍵字,好奇之下去查了查,花了點時間基本弄明白了,故寫在此備忘,順便充充字數。yield關鍵字用來定義生成器 generator 其具體功能是可以當return使用,從函式裡返回乙個值,不同之處是用yield返回之後,可以讓函式從上回yield返回的地點繼續執行...

python中yield關鍵字

mylist是乙個可迭代的物件。當你使用乙個列表生成式來建立乙個列表的時候,就建立了乙個可迭代的物件 mylist x x for x in range 3 for i in mylist print i 01 4在這裡,所有的值都存在記憶體當中,所以並不適合大量資料 def creategener...