python3--迭代器、生成器、裝飾器的理解
阿新 • • 發佈:2018-12-15
本文部分程式碼和例子參考菜鳥教程!
迭代器是一個(可以記錄遍歷位置)的物件。迭代器從集合第一個元素訪問,只能從前往後遍歷。
迭代器有兩個基本的方法:iter() 和 next()。
list=[1,2,3,4]
it = iter(list) # 建立迭代器物件
1、print (next(it)) # 輸出迭代器的下一個元素 輸出元素1
print (next(it)) 輸出元素2
2、還可以用for迴圈進行遍歷
list=[1,2,3,4]
it = iter(list) # 建立迭代器物件
for x in it:
print (x, end=" ")
輸出:1 2 3 4
3、while True: try:
print (next(it))
except StopIteration:
sys.exit()
生成器:使用了yield的函式
與普通函式不同的是,生成器函式返回的是迭代器
import sys def fibonacci(n): # 生成器函式 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一個迭代器,由生成器返回生成 while True: try: print (next(f), end=" ") except StopIteration: sys.exit()
執行以上程式,輸出結果如下:
0 1 1 2 3 5 8 13 21 34 55