Python返回语句

在Python中,return语句退出函数并将指定的值返回给调用者。一个函数中可以存在多个return语句,但只有最先满足指定条件的语句才会被执行。

return关键字是 Python 中的内置关键字之一,也用于提高 Python 的可读性和编写清晰的代码。

本教程将涵盖您应该了解的有关 Python 中 return 语句的所有基本知识。

理解Python函数中的return语句

  • Python return 语句在函数中使用,将某些内容返回给调用程序。
  • 我们只能在函数内部使用 return 语句。
  • 在Python中,每个函数都会返回一些东西。如果没有 return 语句,则返回None
  • 如果 return 语句包含表达式,则首先对其求值,然后返回值。
  • return 语句终止函数执行。
  • 一个函数可以有多个返回语句。当其中任何一个被执行时,该函数就会终止。
  • 一个函数可以返回多种类型的值。
  • Python 函数可以在单个 return 语句中返回多个值。

Python return 语句的语法

语法很简单,由关键字 return 和后面的表达式组成。 

句法:

return expression

这里的表达式可以是任何类似于可以计算为值、实际值甚至我们想要返回给调用者的函数的表达式。

Python return 语句示例

让我们看一个简单的函数示例,该函数使用两个数字来执行计算并将总计返回给调用者。

def add(x, y):
    total = x + y
    return total

我们可以通过在 return 语句中包含表达式来优化函数。

def add(x, y):
    return x + y

让我们通过传递两个参数来进行函数调用,然后打印我们得到的结果。

result = add(5, 3)
 
print(result)

输出:

8

看,这里我们得到了总和,这意味着函数成功返回了总值。

Python 中的每个函数都会返回一些东西

让我们看看当函数没有 return 语句时返回什么。

>>> def foo():
...     pass
...
>>>
>>> print(foo())
None
>>>

我们得到“None”,所以如果我们没有传递 return 语句并尝试访问函数值,默认情况下它会返回 None。

Python return 语句没有任何值

当 return 语句没有值时,该函数返回None

>>> def return_none():
...     return
...
>>> print(return_none())
None
>>>

因此,要么您使用了没有值的 return 语句,要么没有 return 语句,并且该函数返回 None。

Python 函数可以有多个 return 语句

一个函数可以有多个返回值,满足条件的会先执行,然后函数退出。

例子:

def type_of_int(i):
    if i % 2 == 0:
        return 'even'
    else:
        return 'odd'
 
result = type_of_int(7)
 
print(result)

输出:

odd

Python 函数返回多种类型的值

与其他编程语言不同,Python 函数不限于返回单一类型的值。如果您查看函数定义,它没有任何有关它可以返回什么的信息。

例子:

让我们看一个示例,其中函数将返回多个具有多种类型的值。

def get_demo_data(object_type):
    if 'str' == object_type:
        return 'test'
    elif 'tuple' == object_type:
        return (1, 2, 3)
    elif 'list' == object_type:
        return [1, 2, 3]
    elif 'dict' == object_type:
        return {"1": 1, "2": 2, "3": 3}
    else:
        return None
 
print(get_demo_data('str'))   # Output: 'test'
print(get_demo_data('tuple')) # Output: (1, 2, 3)
print(get_demo_data('list'))  # Output: [1, 2, 3]
print(get_demo_data('dict'))  # Output: {"1": 1, "2": 2, "3": 3}
print(get_demo_data('set'))   # Output: None

输出:

test
(1, 2, 3)
[1, 2, 3]
{'1': 1, '2': 2, '3': 3}
None

在单个 return 语句中从函数返回多个值

一个函数在一条语句中可以有多个返回值。这些值由逗号分隔并作为元组返回给调用者程序。

例子:

def return_multiple_values():
    return 1, 2, 3
  
  
print(return_multiple_values())
print(type(return_multiple_values()))

输出:

(1, 2, 3)
<class 'tuple'>

带finally块的Python return语句

当 return 语句在 try- except 块内执行时,首先执行 finally 块代码,然后再将值返回给调用者。

例子:

def hello():
    try:
        return 'hello try'
    finally:
        print('finally block')
  
  
def hello_new():
    try:
        raise TypeError
    except TypeError as te:
        return 'hello except'
    finally:
        print('finally block')
  
  
print(hello())
print(hello_new())

输出:

finally block
hello try
finally block
hello except

如果finally 块有return 语句,则前面的return 语句将被忽略,并返回finally 块中的值。

def hello():
    try:
        return 'hello try'
    finally:
        print('finally block')
        return 'hello from finally'
  
  
print(hello())

输出

finally block
hello from finally

概括

函数中的返回值是函数执行完毕后发送回调用者的值。换句话说,我们可以说 return 语句是函数或方法在终止之前执行的最后一条语句。我们甚至可以从另一个函数返回一个函数。没有 return 语句或没有值的 return 语句的函数默认返回 None。

return 语句当然不是编写有价值的函数的重要方面,因为创建函数的主要目的是封装代码块以便重用该代码。但这是创建函数最重要的部分,因为它使函数功能更加丰富且更具可读性,因此下次创建函数时,请尝试使用 return 而不是使用 print 语句。

参考

Python 官方文档