知识点:
1,外层函数返回值是一个函数,外层函数为环境变量
2,内层函数记忆外层函数调用的变量
# Lexical closure 闭包 ,f1提供运行环境
# 2018年6月25日
def f1(x):
def f2(y):
return y**x
return f2
f3 = f1(3)
print(f3(3))
print(f3(4))
print(f3(5))
print('Change the f1(x)')
f4 = f1(4)
print(f4(3))
print(f4(4))
print(f4(5))
27
64
125
Change the f1(x)
81
256
625
PS E:\python>
# 棋盘 闭合函数
def
startPos(
m,
n):
def
newPos(
x,
y):
print(
'The Old position is:
{}
,
{}
\n
,the new position is:
{}
,
{}
'.format(m,n,m+x,n+y))
return newPos
act = startPos(
5,
5)
act(
1,
2)
act(-
1,-
4)
The Old position is:5,5
,the new position is:6,7
The Old position is:5,5
,the new position is:4,1