python3.6
pycharm
闭包又叫词法闭包或函数闭包。比较高深的样子简单说就是函数的嵌套--函数里面嵌套另一个函数。目的:为了利用以前写好的函数,给它穿一个马甲,瓤没变,加个壳子包装一下(个人浅薄的理解)。
例子1:#pingjia是以前写好的函数,需要加个马甲 流浪地球或疯狂的外星人#cinema实际就是pingjiadef majia(n): if (n==1): print('流浪地球', end='') #end=''表示不换行 else: print('疯狂的外星人', end='') def pingjia(m): #闭包 函数里嵌套的函数就是闭包 if (m == 1): print(' 好电影') else: print(' 一般电影') return pingjia #返回值不带参数print('大年初一看电影:')cinema = majia(1) #cinema 实际就是pingjiacinema(1) #对应闭包也要参数!
例子2:#pingjia是以前写好的函数,需要加个马甲 流浪地球或疯狂的外星人#cinema实际就是pingjiadef majia(n): if (n==1): print('流浪地球', end='') #end=''表示不换行 else: print('疯狂的外星人', end='') def pingjia(m): #闭包 函数里嵌套的函数就是闭包 if (m == 1): print(' 好电影') else: print(' 一般电影') return pingjia #返回值不带参数print('大年初一看电影:')cinema = majia(0) #cinema 实际就是pingjiacinema(0) #对应也要参数!
通过闭包的方式,保持程序的健壮性,降低代码复杂度
函数的嵌套,并不是递归!