如何打印函数的返回值

问题描述 投票:0回答:3

所以我尝试创建一个 logging_decorator() 来记录被调用函数的名称、给出的参数以及最后返回的输出。

我把这个代码

def logging_decorator(function):
    def wrapper_function(*args, **kwargs):
        print(f"You called {function.__name__}{args}")
        print(f"It returned:{function()}")

    return wrapper_function


# Use the decorator 👇

@logging_decorator
def my_func(*args):
   return sum(args)

return_total = my_func(1,2,3)

但是当编辑给我输出时,它给了我这个。

You called my_func(1, 2, 3)
It returned:0

为什么它给我 0 输出?

python output
3个回答
2
投票

在包装函数中调用装饰函数时,没有传递任何参数,导致输出错误。

print(f"It returned: {function(*args, **kwargs)}")

1
投票

4号线,目前是:

print(f"It returned:{function()}")

应该是:

print(f"It returned:{function(*args)}")

因为,在您的代码中,您正在打印

function()
的结果 - 由于没有参数,因此为 0。


1
投票

总和(())== 0

你在不传递任何参数的情况下调用 fucn

注意事项: *args 可以为空

© www.soinside.com 2019 - 2024. All rights reserved.