[Python] yield

def test_gen():
    v = yield 'a'
    print(v)    #2. None
    v = yield 'b'
    print(v)    #4. None
    v = yield 'c'
    print(v)    #6. e
    v = yield 'd'
    print(v)    #8. None
    
iter = test_gen()

print(iter.__next__())    #1. a
print(next(iter))    #3. b
print(iter.send('e'))    #5. c
for v in iter:
    print(v)    #7. d

注:
iter.__next__()相当于iter.send(None)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 当函数中包含yield时,函数被调用后并没有执行,可以通过next()语句让它执行,直到遇到yield表达式处。如...
    sum3mer阅读 306评论 0 0
  • yield expression 1 The yield expression is used when defi...
    庞贝船长阅读 292评论 0 0
  • 从例 1.1 可以看到,func和gen都是函数, 但前者返回数字 1,后者返回的是个生成器(generator)...
    樊海鹏阅读 241评论 0 0
  • 生理期不练功,读书。 可爱的海亮老师,一边说不要读书,一边说自己看很多书。实际的练习、觉察很重要,同时看书也有看书...
    邵清清静阅读 300评论 0 0
  • 记忆往往是从一件件小东西慢慢涌来的,下班回家翻箱倒柜找东西,从沾笔记本中掉出一张干净平整的五块钱。 它的上一任主人...
    一颗朱砂痣阅读 383评论 0 0