Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;lambdas can';“没有赋值语句”那么,为什么是;foo=λx:x*2“;合法的_Python_Lambda_Variable Assignment - Fatal编程技术网

Python &引用;lambdas can';“没有赋值语句”那么,为什么是;foo=λx:x*2“;合法的

Python &引用;lambdas can';“没有赋值语句”那么,为什么是;foo=λx:x*2“;合法的,python,lambda,variable-assignment,Python,Lambda,Variable Assignment,我正在阅读史蒂文·洛特(Steven Lott)的函数式Python编程,这是一本关于“从功能上”而不是以更面向对象的方式使用Python的书,该书侧重于对其大多数示例进行探索性数据分析 洛特说拉姆达不能有任务陈述。但在同一页上,他给一个变量分配了一个lambda函数: >>mersenne = lambda x: 2**x-1 >>mersenne(17) 131071 那怎么不是赋值语句呢?我还缺少其他意义上的“赋值”吗?在“lambda”函数中不能有赋值,但la

我正在阅读史蒂文·洛特(Steven Lott)的函数式Python编程,这是一本关于“从功能上”而不是以更面向对象的方式使用Python的书,该书侧重于对其大多数示例进行探索性数据分析

洛特说拉姆达不能有任务陈述。但在同一页上,他给一个变量分配了一个lambda函数:

>>mersenne = lambda x: 2**x-1
>>mersenne(17)
 131071

那怎么不是赋值语句呢?我还缺少其他意义上的“赋值”吗?

在“lambda”函数中不能有赋值,但lambda本身可以用于赋值


所以你不能说像λx:y=x*2;返回y,但可以说
foo=lambda x:x*2

在“lambda”函数中不能有赋值,但lambda本身可以用于赋值


所以你不能说像λx:y=x*2;返回y,但您可以说它不是赋值


Python中的lambda不能包含赋值。但这几乎是Python中唯一一个实施函数范式的方面。语言的其他部分具有一些不可避免的程序性特征;很难想象一个Python程序不包含任何赋值。

它不是赋值


Python中的lambda不能包含赋值。但这几乎是Python中唯一一个实施函数范式的方面。语言的其他部分具有一些不可避免的程序性特征;很难想象一个Python程序不包含任何赋值。

意味着lambda不能包含/包含赋值语句对lambda的赋值就像是一行函数,你要将lambda本身赋值给一个名称;在你的例子中,作业不在lambda的定义范围内,而在lambda的定义范围内。顺便说一句,你原来的标题比你的问题实际要广泛得多。我试着更新它以适应范围内的问题——函数式编程环境中有很多关于赋值的问题和答案[特别是当有人在FP上引入执行约束求解或类似操作的变体时],实际上不在您在这里提出的范围内。谢谢,Charles,您的标题更清晰。这意味着lambda不能包含/包含赋值语句对lambda的赋值就像是一行
def
函数,您将lambda本身赋值给一个名称;在你的例子中,作业不在lambda的定义范围内,而在lambda的定义范围内。顺便说一句,你原来的标题比你的问题实际要广泛得多。我试着更新它以适应范围内的问题——函数式编程环境中有很多关于赋值的问题和答案[特别是当有人在FP上引入执行约束求解或类似操作的变体时],实际上不在您在这里提出的范围内。谢谢,Charles,你的标题清楚多了。谢谢。这有助于我理解。谢谢。这有助于我理解。