Python:yeildの使用理解
963 ワード
現在、インターネットで見つけたyeildについて最も理解しやすい解釈は、非常に分かりやすいように書かれています.https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/
yeildは実は反復ジェネレータであり、他の愚かな方法に比べてメモリスペースを節約することが最大の利点です.
yeildクラスの実装方法について
クラスの実装方法では,1つの反復器の関数iterを実装する.
呼び出し方法:
yeildの等価法(より簡潔な方法)
呼び出し方法
yeildは実は反復ジェネレータであり、他の愚かな方法に比べてメモリスペースを節約することが最大の利点です.
yeildクラスの実装方法について
クラスの実装方法では,1つの反復器の関数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()
呼び出し方法:
for n in Fab(5):
print n
yeildの等価法(より簡潔な方法)
def fab(max):
n, a, b = 0, 0, 1
while n < max:
yield b
# print b
a, b = b, a + b
n = n + 1
呼び出し方法
for n in fab(5):
print n