当生成器函数中含有return时,return不会返回任何值,会直接终止当前生成器,对yield的作用没有影响,当函数执行到return时候,调用next()来执行生成器则会报错,如果使用for循环遍历,for循环会自动捕获该异常,直接停止遍历 def func(): ): i += yield i # print(i) return i f = func() for i in f: print(i) f = func() next(f) # f.send() next(f) next(f) n…
别的语言中关于函数有传值和传引用的区分. 关于此,流传很广的一个说法是 他们在现象的区别之一就是值传递后的变化,受到影响的就是引用,未受到影响的就是传值. 在学习中,也曾碰到过这个问题,网上关于这个也是有着一些争论,各执一词. 但是官方文档中,却明确写着是call by object reference. https://docs.python.org/2/tutorial/controlflow.html#id2 The actual parameters (arguments) to…