我希望这个生成器从列表中产生每个连续值的余弦,但每次都得到相同的值.
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)
Run Code Online (Sandbox Code Playgroud)
每次调用都会产生相同的值:为什么会这样,我该如何解决?
>>>calc_x(angles).next()
5.0
>>>calc_x(angles).next()
5.0
>>>calc_x(angles).next()
5.0
Run Code Online (Sandbox Code Playgroud)
每次打电话给calc_x你,都会创建一个新的发电机.你需要做的是创建一个,然后继续使用它:
calc = calc_x(angles)
next(calc)
next(calc)
# etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |