Python中的函数装饰器,是一个比较绕的地方,下面我总结了个人的一个对于函数装饰器的一个理解。希望对你有所帮助。函数装饰器:根据概念来说,就是以函数为一个参数的函数,调用之后返回一个函数。返回的函数可以与原来的函数一致,也可以与原来的函数有所差别,下面,我们就来看一个很基本的实例:
def outer(fun):
print(“this is a decoration”)
def inner():
print(fun)
return inner
@outer
def sum_list(list_1):
return sum(list_1)
上面函数是一个闭包,也就是我们所说的装饰器,此时,这个界面给我们的错觉是没有任何一个函数被调用,但是,你如果在IDE里面运行,你会发现有结果打印出来,是一句话:this is a decoration .没有错,装饰器在我们装饰的时候就已经运行了,此时,我们如果再次调用sum_list函数的话,就相当于在执行inner函数,因为外部装饰器的外层已经执行过了,而返回的是一个inner的函数,故现在经相当于把原来的函数 sum_list变成另外的一个函数了。当然,这个过程中,你还要明白,装饰器外层的函数执行的参数是被装饰的函数。
Python中函数装饰器
最新推荐文章于 2025-04-17 17:59:16 发布