Python中文
首页
教程
问答
标签
搜索
登录
注册
函数中的Lambda
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在关注Python<a href="https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions" rel="nofollow noreferrer">tutorial</a></p> <pre><code>def make_incrementor(n): return lambda x: x + n </code></pre> <p>结果:</p> <pre><code>f = make_incrementor(42) print(f(1)) 43 print(type(f)) <class 'function'> </code></pre> 现在我们将用正则函数</p>替换lambda表达式。 <pre><code>def nolambda(x): return x def make_incrementor(n): return nolambda(n) f = make_incrementor(42) print(type(f)) <class 'int'> </code></pre> <p>在第一种情况下,它返回<code><class 'function'></code>,但在第二种情况下,它返回<code><class 'int'></code></p> <p>在第一种情况下,它只指向lamba表达式,不执行它(好的,由于缺少参数,它将引发错误)。我可以理解,但是在第二个例子中,它返回的是<code>int</code>,而不是<code>function</code>,所以我觉得很奇怪。你能解释一下发生了什么事吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在第一个示例中,返回<code>lambda x: x + n</code>,返回的是一个<em>匿名函数</em>,无需调用–它将输入参数<code>n</code>映射到<code>lambda</code>函数,但仍保持未调用状态。在第二个函数中,您返回一个<em>调用的函数</em>,因为您实际上是在<code>make_incrementor</code>函数体中用括号调用的</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
3 回答
如何添加表示整数的擦边字符串?
5 回答
如何添加要在Bokeh中使用的新font.ttf文件?
3 回答
如何添加要显示的矩阵XY轴编号和XY轴
5 回答
如何添加计数?
5 回答
如何添加计数器函数?
9 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
7 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
5 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
6 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
9 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
9 回答
如何添加谷歌地点自动完成到Flask?
8 回答
如何添加超时、python discord bot
10 回答
如何添加超过1dp的检查
5 回答
如何添加距离方法
9 回答
如何添加跟随游戏的敌人精灵
7 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
10 回答