关于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()

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

posted @ 2018-05-16 10:25  GarVicker  阅读(130)  评论(0)    收藏  举报