在 Python 中退出函数

Sahil Bhosale 2023年1月30日
  1. Python 中的隐式返回类型
  2. Python 中的显式返回类型
在 Python 中退出函数

每个程序都有一定的执行流程。流程不过是程序的执行方式。return 语句用于退出 Python 的函数,该函数可在程序内部的许多不同情况下使用。但是下面是我们使用此语句的两种最常见的方法。

  1. 当我们要在函数退出或执行后从其返回值时。我们稍后将在程序中使用该值。
def add(a, b):
    return a + b


value = add(1, 2)
print(value)

输出:

3

在这里,它返回由 a+b 计算的值,然后将该值 3 存储在 value 变量内。

  1. 当我们想在给定时刻停止执行函数时。
def add(a, b):

    if a == 0:
        return
    elif b == 0:
        return
    else:
        sum = a + b
        return sum


value = add(0, 2)
print(value)

输出:

None

在这里,如果 ab 的值为 0,它将直接返回而无需计算数字的总和。如果它们不是 0,那么只有它会计算并返回 sum

现在,如果你在程序中实现此语句,则根据你在程序中添加此语句的位置,程序执行将发生变化。让我们看看它是如何工作的。

Python 中的隐式返回类型

假设我们有一个函数使用 if 语句编写,然后让我们看一下程序的行为。

def solution():
    name = "john"

    if name == "john":
        print("My name ", name)


solution()

输出:

My name john

solution() 函数不带参数。在其中,我们有一个名为 name 的变量,然后使用 if 语句检查其值是否与字符串 john 相匹配。如果匹配,则打印 name 变量的值,然后退出该函数。否则,如果字符串不匹配,我们将不执行任何操作而直接退出它。

在这里,你可能会认为由于代码中没有 return 语句,因此不存在 return 语句。请注意,return 语句不是强制性的。每当你退出任何 Python 函数时,只有在未指定 return 语句的情况下,它才使用值 None 调用 return。值 None 表示该函数已完成其执行,并且不返回任何内容。如果你指定了不带任何参数的 return 语句,则它也与 return None 相同。如果你未在函数内指定任何返回类型,则该函数将调用 return 语句。在 Python 中称为隐式返回类型。

Python 中的显式返回类型

每当你在代码中自己显式添加 return 语句时,该返回类型都称为显式返回类型。具有显式的返回类型有很多优点,例如,你可以传递函数计算出的值并将其存储在变量中以供以后使用,或者借助 return 语句根据某些条件停止执行该函数等等。让我们看一下 Python 中显式类型的示例。

def Fibonacci(n):

    if n < 0:
        print("Fibo of negative num does not exist")
    elif n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n - 1) + Fibonacci(n - 2)


print(Fibonacci(0))

输出:

0

这是一个用于查找斐波那契数的程序。注意在显式 return 语句的帮助下代码是如何返回的。在这里,主要要注意的是,如果传递给该函数的数字是 2 或小于 2,我们将直接返回某个值,并忽略该代码下面的代码退出该函数。仅当传递给该函数的值大于 2 时,我们才会执行主代码(出现在 else 块中)。

作者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

相关文章 - Python Function