This question already has answers here:
How is returning the output of a function different from printing it?

(9个答案)


5年前关闭。




可以说我定义了一个简单的函数,该函数将显示传递给它的整数:
def funct1(param1):
    print(param1)
    return(param1)

输出将是相同的,但是我知道当在函数中使用return语句时,可以再次使用输出。否则,无法使用print语句的值。但是我知道这不是正式的定义,谁能给我一个好的定义?

最佳答案

截然不同的事情。试想一下,如果我有这个python程序:

#!/usr/bin/env python

def printAndReturnNothing():
    x = "hello"
    print(x)

def printAndReturn():
    x = "hello"
    print(x)
    return x

def main():
    ret = printAndReturn()
    other = printAndReturnNothing()

    print("ret is: %s" % ret)
    print("other is: %s" % other)

if __name__ == "__main__":
    main()

您期望得到什么输出?
hello
hello
ret is : hello
other is: None

为什么?

为什么?因为print接受其参数/表达式并将其转储到标准输出,所以在我组成的函数中,print将输出x的值,即hello
  • printAndReturnx返回给方法的调用者,因此:
    ret = printAndReturn()
  • ret将具有与x相同的值,即"hello"
  • printAndReturnNothing不返回任何内容,因此:
    other = printAndReturnNothing()
  • other实际上变成了None,因为这是python函数的默认返回值。 Python函数始终返回某些内容,但如果未声明return,则该函数将返回None

    资源

    阅读python教程将为您介绍这些概念:http://docs.python.org/tutorial

    这是有关python教程中的函数的一些信息:http://docs.python.org/tutorial/controlflow.html#defining-functions

    关于python - “print”和 “return”之间的形式差异是什么? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7664779/

    10-12 04:16
    查看更多