我想学习如何只打印函数的返回值。
即
def dude():
print("Hello")
return 1
我想只打印返回值而不是所有函数进程。我想使用该函数,并能够使用不同的命令来获取return的值,而不支持print.As print(dude())
打印Hello和返回值。
答案 0 :(得分:1)
装饰你的家伙!
def dude_is_decorated(f):
def wrap(*args, **kwargs):
import os
import sys
nothing = open(os.devnull, 'w')
sys.stdout = nothing
sys.stderr = nothing # remove if you want your exceptions to print
output = f()
nothing.close()
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
return output
return wrap
@dude_is_decorated
def dude():
print("Hello")
return 1
print(dude())
输出:
1
答案 1 :(得分:-5)
这似乎更好:
def dude(x,y):
z= x+y:
print ("Hello")
return z
print(str(dude(2,3))[1:len(str(dude(2,3)))-1])
虽然很难看,但它有效并且不会破坏其他任何东西,我可以把它变成一个功能。它只能输出值,它只需要更多的工作来分隔值以供另一位代码使用。它仍然是丑陋的,我希望有一个简单的解决方案,如print(dude(2,3).return),这将是干净的。我发现这对我所做的更复杂的数学计算非常有用。通过一点点工作,我将这个功能自动输出单个和多个值。前提保持不变,str(dude())是简单的解决方案。