可以传入额外参数的装饰器

2018-10-21  本文已影响6人  MoonMonsterss
"""
第一层函数,可以用来接收传递进来的参数
第二层函数,是接收传进来的函数对象
第三层函数,使用万能的参数,*args和**kwargs

该示例输出:
main
name =  chentao
run.name =  Hello World
"""


def wrapper(func_name):
   def func(f):
      def f2(*args, **kwargs):
         print('name = ', func_name)
         f(*args, **kwargs)

      return f2
   return func


@wrapper(func_name='chentao')
def run(name):
   print('run.name = ', name)


if __name__ == '__main__':
   print('main')
   run('Hello World')
上一篇 下一篇

猜你喜欢

热点阅读