python培训之装饰器如何保留原函数信息

发布时间:2023-03-02 09:35:30 人气:21 作者:多测师

  python装饰器如何保留原函数信息

  说明

  1、使用装饰器时,原函数似乎没有改变,但其元信息发生了变化——此时的原函数实际上是包裹后的wrapper函数。

  2、若要保留原始函数的元信息,可以通过内置@functools.wraps(func)实现。

  @functools.wraps(func)的作用是通过update_wrapper和partial将目标函数的元信息复制到wrapper函数中。

python培训之装饰器如何保留原函数信息

  实例

  # def decorator

  def decorator_with_args(*args, **kwargs):

  print('Step1: enter wrapper with args func.')

  print(args)

  print(kwargs)

  def decorator_func(func):

  @functools.wraps(func)

  def wrapper(*args, **kwargs):

  print('Step2: enter wrapper func.')

  return func(*args, **kwargs)

  return wrapper

  return decorator_func

  以上就是python装饰器保留原函数信息的方法,希望对大家有所帮助。更多Python学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线