![](/img/trans.png)
[英]Python3 print statement prints 0 instead of the actual return value of the function
[英]Function prints none instead of printing what I want it to print in decorators in Python
我正在研究 Python 中的装饰器。 我试图将装饰器与 arguments 一起使用。 我的装饰器有问题。 我在默认装饰器 function 中定义了两个内部 function。 当我使用它时它没有返回,如下所示:
def prefix(write: bool = False):
def thread(func):
def wrapper(*args, **kwargs):
t1 = Thread(target=func, args=args, kwargs=kwargs)
t1.start()
if write:
print("write parameter is true.")
return wrapper
return thread
@prefix(write=True)
def something(x):
return x + x
print(something(5))
如您所见,我定义了两个不同的函数,分别命名为 prefix 和 something。 如果 write 参数为 true,则打印字符串。 但是 function 正在打印“无”而不是打印 5 + 5。
怎么了?
好吧,您的wrapper()
function 没有 return 语句,因此它将始终返回None
。
此外,考虑到您正在启动一个新线程来执行此操作,并且永远不会对5 + 5
的返回值做任何func
有吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.