python学习: Python的装饰器

1、 什么是装饰器
装饰器是对函数的修饰,形式如下:

@decorator(deco_args)
def func(func_args):
    pass



它等价于
func = decorator(func)



调用 func() 相当于 decorator(func)()

也就是先调用 decorator, 并将 func 作为参数传递, decorator 进行一些装饰性处理,然后返回一个新的函数对象。 该函数对象必须与 func() 使用相同的参数形式
然后以传递给 func() 的参数,调用这个新的函数对象。

2、 带参数的装饰器
装饰器注意事项
当第一次调用一个被装饰的函数时,执行装饰它的函数的代码,并返回一个新的函数对象
此后对该装饰函数的调用,都不再执行 decorator 代码,而是直接用之前返回的那个函数对象


在 python 里面,当我们执行一个函数的时候,首先要创建一个函数对象,然后执行之; 函数对象只被创建一次,此后对该函数的调用,不用再创建


你可能感兴趣的:(python)