在下面的代码片段中,我尝试返回一个返回生成器的函数(顺便说一句,它们不是曾经被称为迭代器吗?)与步骤的论点咖喱。你知道吗
import math
import numpy
def aequi_ang_step(step):
def local_it(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
return lambda start, d_alpha: local_it(start, d_alpha, step)
这是可行的,但当我从长期禁欲中回到Python时,我的问题是,这是否是一种好的Python方式来使用Python来咖喱迭代器。你知道吗
这并不是我处理问题的方式。特别是,不鼓励返回
lambda
。不如考虑一下现在返回的是一个闭包,其中包含
step
的定义。你知道吗一般来说,我认为一种更为python的方法是
functools.partial
相关问题 更多 >
编程相关推荐