普通装饰器:
def wrap(f
):
@wraps
(f
)
def wrapped_f(*args
, **kw
):
print(args
, kw
)
f
(*args
, **kw
)
return wrapped_f
@wrap
def t(a
, b
):
a
+= b
if __name__
== '__main__':
t
(1,3)
可传递参数的装饰器:
from functools
import wraps
def test(*dargs
, **dkw
):
def wrap(f
):
@wraps
(f
)
def wrapped_f(*args
, **kw
):
print(dargs
, dkw
)
print(args
, kw
)
f
(*args
, **kw
)
return wrapped_f
return wrap
@test
(stop_max_attempt_number
=5, stop_max_delay
=5000, wait_fixed
=1000)
def t(a
, b
):
a
+= b
if __name__
== '__main__':
t
(1,3)
结果:
() {'stop_max_attempt_number': 5, 'stop_max_delay': 5000, 'wait_fixed': 1000}
(1, 3) {}
转载请注明原文地址: https://lol.8miu.com/read-4794.html