【问题标题】:Python Decoration - Keep the original functionPython 装饰 - 保留原有功能
【发布时间】:2021-03-05 09:31:40
【问题描述】:

f 成为一个函数。 在 f 的简单修饰中,f 被替换为 wrapper(f)。 如果我想保留原来的 f 怎么办(和) 定义一个新函数 g s.t. g = 包装器(f) 即我不仅要包装(f),还要保留f本身。

我可以使用@ 表示法吗? 提前致谢!

【问题讨论】:

  • g = decorator(f) 应该可以工作。
  • 您的问题包含解决方案:g = wrapper(f)。你试过了还是不行?
  • 另一个问题。如何删除愚蠢的问题?

标签: python decorator


【解决方案1】:

根据装饰器的定义,这段代码:

@wrapper
def f():
   ...

本质上等同于:

def f():
   ...

f = wrapper(f)

这意味着:

def f():
   ...

g = wrapper(f)

会做你想做的事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2014-12-15
    • 1970-01-01
    相关资源
    最近更新 更多