目前從網(wǎng)上找到的有關(guān)yeild最容易理解的解釋,寫的非常通俗易懂羽利。
https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/
yeild其實(shí)就是一個(gè)迭代生成器跷叉,和其它笨方法相比,最大的優(yōu)勢就是節(jié)省內(nèi)存空間抢韭。。
有關(guān)yeild類的實(shí)現(xiàn)方法
在類的實(shí)現(xiàn)方法中,實(shí)現(xiàn)了一個(gè)的一個(gè)迭代器的函數(shù)iter.
class Fab(object):
def __init__(self, max):
self.max = max
self.n, self.a, self.b = 0, 0, 1
def __iter__(self):
return self
def next(self):
if self.n < self.max:
r = self.b
self.a, self.b = self.b, self.a + self.b
self.n = self.n + 1
return r
raise StopIteration()
如何調(diào)用:
for n in Fab(5):
print n
yeild的等價(jià)方法(更為簡潔的方法)
def fab(max):
n, a, b = 0, 0, 1
while n < max:
yield b
# print b
a, b = b, a + b
n = n + 1
調(diào)用方法
for n in fab(5):
print n