【发布时间】:2013-07-24 11:51:53
【问题描述】:
好吧,我确实尝试阅读有关 Lambda 函数的内容,但没有找到任何链接,该链接解释了有关其流程和 python 解释器处理方式的一些问题,或者我可能无法正确理解它。 我有几个问题,请有人为我澄清一下。 这是代码:
def f1(n):
print 'in f1, value is : ', n
return lambda x: x+n
if __name__ == '__main__':
f= f1(100)
print f(1)
print f(3)
print f1(10)
print f(5)
print type(f1)
输出是:
in f1, value is : 100
101
103
in f1, value is : 10
<function <lambda> at 0x019C66B0>
105
<type 'function'>
我的问题是:
- 对于
f(1)和f(3)为什么没有调用print语句以及何时调用 我们调用了f1(100),为什么没有编译 lambda 语句。 - 函数
f1中的x和n有什么关系。 - 我以为
f(5)会是15(10 + 5) - 请解释
print f1(10) - 另外,请告诉我这里的
lambda x:是什么意思,x 是这个块的名称吗?请解释一下。
谢谢大家。
【问题讨论】:
-
在提出任何问题之前先尝试搜索。参考这个链接。 stackoverflow.com/questions/1085875/…
-
@tailor_raj :谢谢你的链接,但即使在阅读之后我仍然会问我的一些问题,因为我正在寻找某些具体的解释(基于 python)并且我在发布这个之前做了搜索题!!!我非常期待像你这样的元素肯定会回喊我问题的完整性,几乎每个问题中都有一个!!!!所以我想说不要再劝阻人们提问了。
-
这不是劝阻人们。因为如果你搜索,你肯定会得到比你要求的更多的东西。
-
“请告诉我什么是 lambda x: 在这里的意思”。从文档开始:docs.python.org/3/reference/expressions.html#lambda 并点击链接。
标签: python python-2.7 python-3.x lambda