面试题_lambda函数调用

时间:2023-03-09 02:15:54
面试题_lambda函数调用

res多少?

 def func():
return [lambda x: i * x for i in range(4)] res = [m(2) for m in func()] # print(res)
# 6 6 6
 # 转化版本
def func():
li = []
for i in range(4):
# 此处为函数的定义处
def lam(x):
# 等到lam函数调用时
# 会向外界寻找局部变量i
# 此时i已经被for循环完毕, i==3,
# 与内函数发生绑定关系
# 所以这四个函数调用的i都是3
return x * i li.append(lam)
# li列表内是四个lam函数
return li # 此处是函数的调用处
res = [m(2) for m in func()]
print(res)