python - 变量如何在函数内部取值而不在任何地方声明

标签 python lambda

<分区>

我有一个小的 python 脚本,其中 lambda 函数内的变量(在另一个函数内)没有从某处获取任何值,但脚本仍然有效,我不明白为什么。下面是我的代码,a是神秘变量。我知道出于某种原因它有效,但我不知道为什么。

 def myfunc(n):
   return lambda a : a * n <== a variable takes value from where???

 mydoubler = myfunc(2)
 print(mydoubler(11))

最佳答案

您在这里声明了变量:

def myfunc(n):
   return lambda a : a * n

a 是 lambda 参数的名称

lambda a

这相当于:

def some_name(a):
    ...

唯一的区别是 lambda 就像一个没有名字的函数。匿名的。

关于python - 变量如何在函数内部取值而不在任何地方声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55917095/

相关文章:

python - 对函数的类变量引用更改为 instancemethod

java - docs.oracle.com lambda 表达式示例无法编译

lambda - 通过程序执行的说明

c++ - 存在 lambda 参数时 ADL 失败?

c++ - lambda 调用另一个外部 lambda

python - Django - 从 F 表达式获取值

c# - Azure 表存储多行查询性能

python - 在Python中将用户昵称转换为正式名字

python - EbaySDK Python GetFeedback (ItemID) 仅返回 100 个值

php - foreach、array_map 与 lambda 和 array_map 与静态函数的性能