【发布时间】:2013-01-19 08:29:38
【问题描述】:
我正在检查这个函数,它应该根据传递给它的参数在数组中向前或向后循环。要更新索引,代码是这样的:
>>> 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
那么为什么第一个例子返回一个函数呢?
【问题讨论】:
标签: python-3.x lambda