#1.可以实现循环变量
def makeActions():
acts = []
for i in range(5):
actt = lambda t : acts.append(t ** i)
actt(3)
return acts
acts = makeActions()
#2.无法实现循环变量
def makeActions():
acts = []
for i in range(5):
acts.append(lambda x:i ** x)
return acts
acts = makeActions()
#3.可以实现循环变量
def makeActions():
acts = []
for i in range(5):
acts.append(lambda x,i=i:i ** x)
return acts
acts = makeActions()
其中第二、三部分选自《python学习手册》p506处的代码。
希望知道如何判断外层作用域中的求值何时发生。
具体就是上面三个代码为什么第一个不需要默认值参数,第二个需要。