python如何修饰带参数的装饰器

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、概念

修饰带有参数的函数的装饰器,装饰器的作用是返回一个函数的代理。

2、修饰方法

(1)定义一个装饰器函数并传递类对象

(2)在定义的装饰器函数内部定义一个代理函数对象,此代理函数对象与原函数传递的参数一致,并负责处理装饰器拦截方法等工作,最后返回一个类对象

(3)使用装饰器修饰类必须重载运算符__call__保证可被动态调用(类似与反射创建类对象)

3、实例

defdecorator(fn):
defproxy(*args,**kwargs):
u"""
作为代理函数来调用原有的函数,并对原来的函数进行auth的校验
:paramargs:
:paramkwargs:
:return:
"""
print("authchecking")returnfn(*args,**kwargs)returnproxy@decoratordeffn(a=9,b=10):
print(a+b)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。