如何只打印函数的返回值?

时间:2018-03-19 17:34:43

标签: python function return

我想学习如何只打印函数的返回值。

def dude():
  print("Hello")
  return 1

我想只打印返回值而不是所有函数进程。我想使用该函数,并能够使用不同的命令来获取return的值,而不支持print.As print(dude())打印Hello和返回值。

2 个答案:

答案 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())是简单的解决方案。