我正在学习Python,并检查lambda函数的示例。我想问你为什么在下面的例子中,打印语句print(table())
中有空的圆括号?我试图在没有它的情况下运行代码,print(table)
,它不显示值。
tables = [lambda x=x: x*10 for x in range(1, 11)]
for table in tables:
print(table())
发布于 2022-05-08 18:07:56
table
是lambda函数,所以您需要调用它。
如果您运行此代码
tables = [lambda x=x: x*10 for x in range(1, 11)]
for table in tables:
print(type(table))
你得到:
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
<class 'function'>
如果您不调用一个函数,它会给您函数对象,而不是函数的结果。
发布于 2022-05-08 18:18:48
蒂娜是对的,但既然你还在学习Python,请允许我澄清一下。表中的每个元素都是通过一个函数生成的。
当迭代(表中的表)时,必须执行函数来生成每个元素。只要尝试一下,您就可以更清楚地看到错误:
打印(表格)
返回:
<函数在0x7f6c12c75c10>,,,,,,,,,
必须通过执行lambda函数来解析每个元素,这是通过在表的调用中添加()来完成的。
https://stackoverflow.com/questions/72163775
复制相似问题