Это не совсем то, как я бы подошел к проблеме здесь. В частности, возврат lambda
не рекомендуется. Рассмотрим вместо этого
import math
import numpy
def aequi_ang_step(step):
def local_it(start, d_alpha):
for alpha in numpy.arange(start, start+d_alpha,(d_alpha < 0) and -step or step):
if (alpha < 2*math.pi): yield alpha
else: yield alpha-2*math.pi
return local_it
Теперь вы возвращаете закрытие, которое включает определение для step
.
Я думаю, что более питонический подход для карри - это functools.partial
from functools import partial
import math
import numpy
step = 0.1
def aequi_ang(start, d_alpha, step):
for alpha in numpy.arange(start, start+d_alpha,(d_alpha < 0) and -step or step):
if (alpha < 2*math.pi): yield alpha
else: yield alpha-2*math.pi
aequi_ang_step = partial(aequi_ang, step=step)