python 单例模式----装饰器实现

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:  
f2:  4

可以看出f1为一个函数,调用这个函数时,才会返回值

闭包可以使得内函数返回的局部变量的生命周期与整个项目相同,即sum1会一直保留到整个工程运行结束,而不是这个函数执行完。

2、python 装饰器

def fun1(fun):
    print 'fun1 action'
    return fun

@fun1    
def fun2():
    print 'fun2 action'
    
if __name__ == '__main__':
    fun2()
<

你可能感兴趣的:(python,python,单例模式,闭包)