首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么lambda输出的print语句中需要空的圆括号"print(table())"?

为什么lambda输出的print语句中需要空的圆括号"print(table())"?
EN

Stack Overflow用户
提问于 2022-05-08 17:55:30
回答 2查看 39关注 0票数 0

我正在学习Python,并检查lambda函数的示例。我想问你为什么在下面的例子中,打印语句print(table())中有空的圆括号?我试图在没有它的情况下运行代码,print(table),它不显示值。

代码语言:javascript
运行
复制
tables = [lambda x=x: x*10 for x in range(1, 11)]
 
for table in tables:
    print(table())
EN

回答 2

Stack Overflow用户

发布于 2022-05-08 18:07:56

table是lambda函数,所以您需要调用它。

如果您运行此代码

代码语言:javascript
运行
复制
tables = [lambda x=x: x*10 for x in range(1, 11)]
 
for table in tables:
    print(type(table))

你得到:

代码语言:javascript
运行
复制
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>

如果您不调用一个函数,它会给您函数对象,而不是函数的结果。

票数 1
EN

Stack Overflow用户

发布于 2022-05-08 18:18:48

蒂娜是对的,但既然你还在学习Python,请允许我澄清一下。表中的每个元素都是通过一个函数生成的。

当迭代(表中的表)时,必须执行函数来生成每个元素。只要尝试一下,您就可以更清楚地看到错误:

打印(表格)

返回:

<函数在0x7f6c12c75c10>,,,,,,,,,

必须通过执行lambda函数来解析每个元素,这是通过在表的调用中添加()来完成的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72163775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档