首页 > 解决方案 > 变量如何在函数内部取值而不在任何地方声明它

问题描述

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

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

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

标签: pythonlambda

解决方案


您在这里声明了变量:

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

a是 lambda 的参数名称

lambda a

这相当于:

def some_name(a):
    ...

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


推荐阅读