在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 语句。