flask框架-decorator装饰器

时间:2023-03-09 06:51:58
flask框架-decorator装饰器

调用包:

from functools import wraps

装饰器其实就是一个函数:参数是一个函数,返回值是一个函数

1.装饰器使用是通过@符号,在函数的上面

2.装饰器中定义的函数,要使用*args,**kwargs两对兄弟组合,并且在这个函数中执行原始函数的

时候也要把*args,**kwargs传进去

3.需要使用functools.wraps在装饰器的函数上,把传进来的函数进行包裹,这个不会丢失原始函数

的__name__等属性

def my_log(func):

  @wraps(func)

  def wrapper(*args,**kwargs):

    print'hello world'

    func(*args,**kwargs)

  return wrapper

@my_log

def run():

  print'run'