【问题标题】:Passing return value of function to decorator将函数的返回值传递给装饰器
【发布时间】:2017-10-09 10:56:26
【问题描述】:

我对装饰器比较陌生。

我的疑问是我们能否将函数的返回值传递给装饰器函数。添加伪代码

@dec(a = x)
def fun():
    x = 25
    return x
# My decorator function
def dec(a = x)
    print a

【问题讨论】:

  • 我不清楚你想做什么。这目前不起作用,对吧?但它应该如何工作呢?
  • 是的,这不起作用。我需要将函数的返回值传递给装饰器函数。有可能吗??
  • 目前还不清楚预期的输出是什么。举个例子会有所帮助。

标签: python python-2.7 python-3.x


【解决方案1】:

我猜你正在尝试做这样的事情:

# My decorator function
def dec(func):
    def func_wrapper(a):
        print (a, " :Decorator value a")
        return func(a)
    return func_wrapper

@dec
def func(a):
    x = 25
    print(x, " :Function value x")
    return x


func(5)
# Output:
#  5  :Decorator value a
#  25  :Function value x

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多