我正在检查这个函数,它应该根据传递给它的参数在数组中向前或向后循环。要更新索引,代码如下所示:
>>> def updater(me, x, y):
... fun = lambda x : x + 1 if x < y else lambda x : x - 1
... return fun(me)
...
>>> updater(2, 1, 0)
<function <lambda> at 0x7ff772a627c0>
我意识到如果我只使用一个简单的if-return-else-return
序列,上面的例子可以很容易地纠正,但这只是一个简化,在实际代码中它不仅仅是检查两个整数。是的,有一个单行条件返回一个函数(不要问,不是我自己的代码)。
理智检查我的翻译...
>>> updater = lambda x: x + 1
>>> updater(2)
3
那么为什么第一个例子返回一个函数呢?