假设我定义了一个简单的函数,它将显示传递给它的整数:

def funct1(param1):
    print(param1)
    return(param1)

输出将是相同的,但是我知道当return语句在函数中使用,输出可以再次使用。print不能使用语句。

答案

截然不同的事情。

#!/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

  • printAndReturn将返回x对于该方法的调用者,因此:

    ret = printAndReturn()

ret将具有相同的值x, IE。"hello"

  • printAndReturnNothing不返回任何内容,所以:

    other = printAndReturnNothing()

other实际上变成None因为这是 python 函数的默认返回值。 return被声明后,该函数将返回None


资源

通过 Python 教程将向您介绍以下概念:http://docs.python.org/tutorial

以下是 python 教程中有关函数的一些内容:http://docs.python.org/tutorial/controlflow.html

像往常一样,这个示例演示了一些新的 Python 功能:

return 语句返回函数的值。

来自: stackoverflow.com