1、闭包的实现
#coding:utf-8
def A():
s1=2
def B():
sum1=s1+2
return sum1
return B
if __name__ == '__main__':
f1=A()
f2=f1()
print 'f1: ',f1
print 'f2: ',f2
输出:
f1: <function B at 0x02BDEB30>
f2: 4
可以看出f1为一个函数,调用这个函数时,才会返回值
闭包可以使得内函数返回的局部变量的生命周期与整个项目相同,即sum1会一直保留到整个工程运行结束,而不是这个函数执行完。
2、python 装饰器
def fun1(fun):
print 'fun1 action'
return fun
@fun1
def fun2():
print 'fun2 action'
if __name__ == '__main__':
fun2()
<