python - lambda调用查询(python)

标签 python lambda

我终于理解了lambda!大概我是这么想的

为什么这不起作用:

示例 1:

for x in range(18, 101):
    print("Man's age: ", x, "Women's age: ", lambda x:x//2+9(x))

然而这确实:

示例 2:

for x in range(18, 101):
    print("Man's age: ", x, "Women's age: ", (lambda x:x//2+9)(x))

这是否意味着将 lambda 放在括号中等同于调用它?并在其旁边放置另一个开/关括号表示它是参数?

最佳答案

在您的第一个示例中,您正在打印一个 lambda 函数定义

如果将它分配给一个变量并尝试打印它,则相同。

v  = lambda x:x//2+9(x)
print v
>>function <lambda> at 0x10c32aaa0

如果要执行,需要执行v(x)

但是,你会得到一个错误,因为 9(x) 语句试图调用一个使用 int 的函数。

正确的使用方法

v  = lambda x:x//2+9
print v(2)
>>10

关于python - lambda调用查询(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32731117/

相关文章:

c++ - 默认模板类 lambda

c# - Expression<Func<T,TResult>>.Compile() 的反转?

python - 安装后没有名为 matplotlib 的模块

python - 如何在 Django 中处理多种用户类型

Python TCP Payload Duplication - 同时将数据传递到多个端点

c# - 在 LINQ to Entities Expression 中对 String 以外的类型调用 Contains() 方法

python - 将多个文件的数据连接到一个文件中并重命名该文件?

python - 在 pyspark 中应用用户定义聚合函数的替代方法

c++ - 如何强制编译器识别模板函数中的 lambda 类型?

c# - 如何将lambda表达式直接转换为对象?