python自定義迭代器應用 生成斐波那契數列

2021-10-25 15:22:31 字數 800 閱讀 7509

再類中,定義了__iter__(self)方法就成為了可迭代物件,再在定義乙個__next__(self)方法最終成為迭代器

迭代器是在你要用的時候再給你造乙個值,相當於買手抓餅,你說要買的時候人家才給你現場做,節約了記憶體。

classa:

def__init__

(self, num)

: self.num = num

self.x =

0 self.y =

1def

__iter__

(self)

:# 必須:定義了__iter__()後成可迭代物件

return self # 返回乙個可迭代物件(因為定義了__iter__()所以本身就是可迭代物件)

def__next__

(self)

:# 再定義__next__()方法後成為迭代器

if self.x > self.num:

raise stopiteration

self.x, self.y = self.y, self.x + self.y

return self.x

a = a(10)

# 例項成為乙個可迭代物件

for i in a:

# 使用for...i會呼叫__next__()方法,返回值i為__next__()的返回值

print

(i)# 第二種使用方法

s =list

(a(10))

print

(s)

開發自定義python 迭代器

class test object def init self,data iter,stop self.data iter data iter self.stop stop self.start 0 def iter self return self def next self self.start...

C 自定義迭代器

讓我們在示例中看乙個簡單迭代器型別的定義。我們定義乙個類模板,用來表示一段數值型別值,也可以生成指定範圍的開始和結束迭代器。這個迭代器也是模板型別,兩個模板都定義在同乙個標頭檔案 numeric range.h 中。下面是 numeric range模板的定義 template class nume...

c 自定義迭代器練習

include include include include includeusing namespace std 第乙個型別引數可選的值為如下幾種 struct input iterator tag 唯讀 struct mutable iterator tag 只寫 struct output ...