1
我想創建一個具有類似生成器的方法的類。我對發電機相當陌生。這裏是我的代碼:類中的python生成器
class MyGen:
def __init__(self):
self.a = 0
def create_generator(self):
yield self.a
self.a += 1
if __name__ == "__main__":
myGenInstance = MyGen()
myGen = myGenInstance.create_generator()
for i in range(3):
print(next(myGen))
我得到這個錯誤:
Traceback (most recent call last):
0
File "C:/Users/tvavr/PycharmProjects/filter/geneŕator_test.py", line 17, in <module>
print(next(myGen))
StopIteration
Process finished with exit code 1
我缺少什麼?
您的生成器只返回一個值(它只是一個不在任何循環內的yield語句)。試圖正確地獲得另一個值會導致「StopIteration」異常,表示沒有更多的值可以產生。 –
這是非常值得的時間來閱讀:http://stackoverflow.com/a/231855/1832539 – idjaw
換句話說:你不會錯過任何東西,它的行爲完全如預期。 – jonrsharpe