闭包需知足三个条件: 1. 是嵌套函数;2. 内部函数使用了外部函数的变量;3. 外部函数返回内部函数闭包
例如1:函数
def fun1(): a=1 def fun2(): b = a+10 print b return fun2 print callable(fun1) my_fun2 = fun1() my_fun2()
例如2:spa
def fun1(a): def fun2(b): c = a+b print c return fun2 my_fun2 = fun1(3) my_fun2(8)
例如3(注意点):code
def fun1(a): def fun2(b): a = a+b print a return fun2 my_fun2 = fun1(3) my_fun2(8)
这段程序的本意是要经过在每次调用闭包函数时都对变量a进行递增的操做,可是会出现找不到变量a的错误。blog