作用域这里没有看懂,有没有人可以帮助我理解一下,什么叫嵌套函数被调用时才进行查找,为什么每次循环调用都是记住的4
里面匿名函数的调用相当于下面这样写:
acts=[]
for i in range(5):
def fun(x):
return i**x
acts.append(fun)
可见循环四次,acts里保存了四个一样的函数fun,而里面这个变量 i 只有在运行函数 fun 的时候才从外层作用域,也就是 for in 所在的函数里查找当前 i 的值,也就是最后一次循环后的值 4
lambda 是匿名函数,相当于这个循环是在像acts列表里面添加的是一个函数
比如说你有一个函数
def a():
print('函数')
b = a
b引用了a,你也可以这样去调用a()函数,b()
你的列表元素就相当于b的作用了,
ats[0]()就是在调用这个函数执行