外部函数的返回值是内部函数,内部函数引用外部函数的参数和局部变量,并且存储在内部函数中(返回函数),调用的时候才计算(加())。
def count():
fs = []
for i in range(1, 4):
def f():
return i*i # 这里的i是变化的
fs.append(f) # f未加括号,只是创建了一个函数
return fs
f1, f2, f3 = count()
def count():
def f(j):
def g():
return j*j #这里的j被绑定带函数f中,不再变化
return g
fs = []
for i in range(1, 4):
fs.append(f(i)) # f(i)立刻被执行(有括号),返回的g也是一个函数(未计算,等调用的时候才计算)
return fs