我希望这个生成器从列表中产生每个连续值的余弦值,但每次都得到相同的值。
import math
angles = range(0,361,3)
# calculate x coords:
def calc_x(angle_list):
for a in angle_list:
yield round(radius * cos(radians(a)), 3)
每次调用都会产生相同的值:为什么会这样,我该如何解决?
>>>calc_x(angles).next()
5.0
>>>calc_x(angles).next()
5.0
>>>calc_x(angles).next()
5.0
答案 0 :(得分:8)
每次拨打calc_x
时,都会创建新生成器。你需要做的是创建一个,然后继续使用它:
calc = calc_x(angles)
next(calc)
next(calc)
# etc.