标签:函数作用域 增加 附加 func 运行环境 ret 函数 状态 too
#闭包,也叫词法闭包:如下所示函数A主要是为了函数B提供运行环境的#闭包:如下所示我们只需要不断的变化f调用变化就可以是函数B跟着变化了
def A(num1,num2):
    def B(x,y):
        print("我是%s!"%(num1+x))
        print("我是%s!"%(num2+y))
    return B
f=A(1,2)
f(3,4)装饰器:
一下面的例子为例,如果我们有一个简单的函数C,我们在不动其他函数的基础上需要给函数C增加新的功能,需要怎么做呢?这就需要用到装饰器了
#这是不用装饰器时:
def A(func):
    def B():
        print("我是附加功能1!") #附加功能
        func()
        print("我是附加功能2!")  # 附加功能
    return B
def C():
    print("我是函数原来的功能!")
res=A(C)
res()#用装饰器时:
def A(func):
    def B():
        print("我是附加功能1!") #附加功能
        func()
        print("我是附加功能2!") #附加功能
    return B
@A
def C():
    print("我是函数原来的功能!")
C()#带参数的装饰器:
def A(func):
    def B(x):
        print("我是附加功能1!") #附加功能
        func(x)
        print("我是附加功能2!") #附加功能
    return B
@A
def C(x):
    print("我是函数原来的功能!%s"%x)
C('hello action!')标签:函数作用域 增加 附加 func 运行环境 ret 函数 状态 too
原文地址:http://blog.51cto.com/853056088/2131108