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

"""
第一层函数,可以用来接收传递进来的参数
第二层函数,是接收传进来的函数对象
第三层函数,使用万能的参数,*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')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容