Discuss / Python / 关于yield的一点疑惑

关于yield的一点疑惑

Topic source

魔术念

#1 Created at ... [Delete] [Delete and Lock User]
def odd():
    print("step 1")
    yield 1
    print("step 2")
    yield 2
    print("step 3")
    yield 5
o = odd()
next(o)

我直接运行这段脚本(通过python generator.py),结果是:step 1

并没有输出1;

但是在python环境中一行行打出脚本执行,结果就是 step 1 1

有人能解释下吗?为什么直接执行脚本的时候不输出1呢

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

print(next(o))

空鸣sama

#3 Created at ... [Delete] [Delete and Lock User]

yield相当于return而不是print


  • 1

Reply