关于yield的使用方法疑问
import itertoolsdef frange(start,end=None,inc=1.0):
for i in itertools.count():
result=start+i*inc
yield result
ret=frange(0,100)
print ret.next()
print ret.next()
print ret.next()
ret.send(10)
print ret.next()
print ret.next()
输出结果为:
0.0
1.0
2.0
4.0
5.0
ret.send(10)为什么没有生效呢? 回复 1# maple412
因为你没有在frange里面使用yield去取得send的值。 回复 2# icymirror
改成这样?
import itertools
def frange(start,end=None,inc=1.0):
for i in itertools.count():
val=(yield result)
if val is not None:
result=val
else:
result=start+i*inc
页:
[1]