首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >科鲁丁对目标?

科鲁丁对目标?
EN

Stack Overflow用户
提问于 2018-06-05 16:03:28
回答 1查看 154关注 0票数 0

为什么要使用协同线,它是在调用之间保持内部状态的函数,而不是具有内部状态的对象?

EN

回答 1

Stack Overflow用户

发布于 2018-06-05 17:19:47

如果您习惯了Java的Iterator接口,那么它的基本原理是非常引人注目的。

考虑到这一点:

代码语言:javascript
复制
def my_generator():
    yield "first"
    yield "second"
    yield from some_list()

把它写成一个类:

代码语言:javascript
复制
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

更新您的状态只是样板,如果您可以让编译器/解释器为您编写样板,为什么不呢?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50704483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档