关于python的闭包与装饰器的实验

首先看闭包,在嵌套函数内添加返回值,可以通过外部函数读取内部函数信息

#encoding=utf-8

#闭包应用

#先定义闭包函数,并使用

def outer(func):

    def inner():

        print("记录日志开始")

        func() # 业务函数

        print("记录日志结束")

    return inner

def foo():

    print("foo")

foo = outer(foo)

foo()

结果

那么如果不使用闭包用装饰器代替

#不用闭包,先定义

def outer(func):

    

    print("记录日志开始")

    func() # 业务函数

    print("记录日志结束")

@outer

def foo():

    print("不用闭包foo")

foo()

可见装饰器的用途就是用来说明,@的函数是下面函数的外部函数

猜你喜欢

转载自www.cnblogs.com/garvicker/p/9044615.html