python迭代器生成器高階

2022-09-15 23:18:22 字數 708 閱讀 9559

def num():

for i in range(1,4):

print(i,"傳送出去")

try:

a = yield i

print(a,"接受外部引數")

except exception:

print("接收錯誤並處理")

i = num()

nu = next(i)

print(nu,"接收迭代引數")

while true:

try:

if nu == 2:

print("傳送乙個錯誤")

i.throw(valueerror)

print(nu,"傳送回去")

nu = i.send(nu)

print(nu, "接收迭代引數")

except stopiteration:

print("迭代器無元素,結束")

break

列印

1 傳送出去

1 接收迭代引數

1 傳送回去

1 接受外部引數

2 傳送出去

2 接收迭代引數

傳送乙個錯誤

接收錯誤並處理

3 傳送出去

2 傳送回去

2 接受外部引數

迭代器無元素,結束

python高階 迭代器 生成器

迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有 list tuple等都是可迭代物件,我們可以通過iter 函式獲取這些可迭代物件的迭代器。然後我們可以對獲取到的迭代器不斷使用next 函式來獲取下一條資料。iter 函式實際上就是...

Python 高階 迭代器與生成器

特殊方法 iter 是迭代器規則 iterator protocol 的基礎。iter 需要返回乙個迭代器 iterator 所謂的迭代器就是具有 next 方法 該方法在呼叫時不需要任何引數 的物件。在呼叫 next 方法時,迭代器會返回它的下乙個值。如果 next 方法被呼叫,而迭代器沒有值可以...

Python 高階3 迭代器, 生成器

generator 生成器是一種特殊的迭代器,不需要自定義 iter 和 next 生成器函式 yield 生成器表示式 class range def init self,start,end none,step 1 if end is none self.end start self.start ...