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

时间:2022-09-26 19:51:23

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

#encoding=utf-8

#闭包应用

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

def outer(func):

def inner():

print("记录日志开始")

func() # 业务函数

print("记录日志结束")

return inner

def foo():

print("foo")

foo = outer(foo)

foo()

结果

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

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

#不用闭包,先定义

def outer(func):

print("记录日志开始")

func() # 业务函数

print("记录日志结束")

@outer

def foo():

print("不用闭包foo")

foo()

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

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