一、人生模式:每一段历程,向着目标出发!
def life(time, goal):
print(time + ',' + '加油!')
mygoal = time + ':' + goal + '!'
def go():
print(mygoal, '出发...')
return go # 注意:不是返回:go()
二、开启每一段精彩历程,定下每一段旅程目标!
# 生活,就是由各种不同目标的一段段旅程组成...
# 定义好目标,准备出发(返回go函数引用)
past = life('2020', '刻苦努力')
now = life('当下', '过好当下')
future = life('2021', '未来可期')
2020,加油!
当下,加油!
2021,加油!
三、关键在于:每一段历程,都矢志不移!
# past、now及future三者其实指向的都是life中的go函数。
past()
now()
future()
# 但执行结果为什么不一样呢?
2020:刻苦努力! 出发...
当下:过好当下! 出发...
2021:未来可期! 出发...
四、“闭包”:相同的go函数,但每段旅程心中的目标mygoal各不相同。
def life(time, goal):
print(time + ',' + '加油!')
mygoal = time + ',' + goal + '!'
def go():
print(mygoal, '出发...')
return go
- go函数需要访问父函数life中的mygoal变量;
- 但是父函数早在调用life时就已经运行结束了;
- life调用结束时,返回了go函数引用(不是调用!),为了不忘目标,mygoal被同时打包进行囊(一块组成了“闭包”函数),牢记于心。
2020年是不平凡的一年,我们一块见证了世界的变化和挑战。转眼,2020即将过去,让我们放下过去、放眼将来,2021,我们满怀希望,再出发!