所以我尝试创建一个 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 输出?
在包装函数中调用装饰函数时,没有传递任何参数,导致输出错误。
print(f"It returned: {function(*args, **kwargs)}")
4号线,目前是:
print(f"It returned:{function()}")
应该是:
print(f"It returned:{function(*args)}")
因为,在您的代码中,您正在打印
function()
的结果 - 由于没有参数,因此为 0。
总和(())== 0
你在不传递任何参数的情况下调用 fucn
注意事项: *args 可以为空