python装饰器如何保留原函数信息
说明
1、使用装饰器时,原函数似乎没有改变,但其元信息发生了变化——此时的原函数实际上是包裹后的wrapper函数。
2、若要保留原始函数的元信息,可以通过内置@functools.wraps(func)实现。
@functools.wraps(func)的作用是通过update_wrapper和partial将目标函数的元信息复制到wrapper函数中。
实例
#defdecorator defdecorator_with_args(*args,**kwargs): print('Step1:enterwrapperwithargsfunc.') print(args) print(kwargs) defdecorator_func(func): @functools.wraps(func) defwrapper(*args,**kwargs): print('Step2:enterwrapperfunc.') returnfunc(*args,**kwargs) returnwrapper returndecorator_func
以上就是python装饰器保留原函数信息的方法,希望对大家有所帮助。更多python学习指路:python基础教程
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。