我们在使用 Decorator 的过程中,难免会损失一些原本的功能信息。直接拿 stackoverflow 里面的栗子

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
:
:
)
_logging
 
logged
:
x
 
:
x
)
 
__name__
with_logging

而functools.wraps 则可以将原函数对象的指定属性复制给包装函数对象, 默认有 __module____name____doc__,或者通过参数选择。代码如下:

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wraps
:
)
:
)
_logging
 
logged
:
x
 
# prints 'f'

相关文章:

  • 2021-07-28
  • 2022-12-23
  • 2021-07-17
  • 2022-12-23
  • 2021-07-23
猜你喜欢
  • 2021-11-30
  • 2022-12-23
  • 2022-03-07
  • 2021-06-11
  • 2022-12-23
  • 2021-09-01
  • 2021-05-19
相关资源
相似解决方案