def main(i):
while i > 0:
if i == 5: yield i
i -= 1
print("ran")
main(10)
它不打印“运行”,删除“yield i”修复它但是我如何正确格式化呢? lynda.com电影中python3的例子是一样的,3.3和3.1之间是否有语法差异?
答案 0 :(得分:0)
yield
是一个神奇的关键字,可将函数转换为生成器。这意味着它实际上已暂停在yield i
行,并且当您使用该值时,您将能够在main
中继续执行。
尝试用
替换最后一行it=main(10)
next(it) # = 5
next(it) # prints "ran", then raises StopIteration