为什么要使用协同线,它是在调用之间保持内部状态的函数,而不是具有内部状态的对象?
发布于 2018-06-05 17:19:47
如果您习惯了Java的Iterator接口,那么它的基本原理是非常引人注目的。
考虑到这一点:
def my_generator():
yield "first"
yield "second"
yield from some_list()把它写成一个类:
class MyIterator:
def __init__(self):
self.place = 0
def __next__(self):
if self.place == 0:
result = "first"
self.place += 1
elif self.place == 1:
result = "second"
self.place += 1
self.list_iter = iter(some_list())
else:
result = next(self.list_iter) # Throws implicitly
return result更新您的状态只是样板,如果您可以让编译器/解释器为您编写样板,为什么不呢?
https://stackoverflow.com/questions/50704483
复制相似问题