Python 闭包

2024 年 8 月 29 日 | 阅读 3 分钟

Python 这样的语言拥有丰富的概念,这些概念很有趣,并且旨在简化程序员的工作。

在本教程中,我们将学习 Python 闭包。但在那之前,让我们回顾一下嵌套函数,看看它们如何成为理解该主题的先决条件。

那么,让我们开始吧

程序 1

下面给出的程序说明了嵌套函数和非局部变量的概念。

输出

Python at JavaTpoint

说明

让我们理解一下我们在程序中做了什么-

  1. 我们创建了 function_1,它接受参数 txt,并在其中创建了另一个打印 txt 值的函数。
  2. 正如我们在上面的程序中看到的,调用了 'function_2',然后我们将一个字符串值传递给了 function_1。
  3. 执行此程序后,它会显示所需的输出。

程序 2

现在,让我们看看闭包如何帮助简化我们的工作并改进我们的程序。

以下程序说明了这一点-

输出

Let us learn a programming language.

说明

让我们理解一下我们在程序中做了什么-

  1. 我们创建了 function_1,它接受参数 txt,并在其中创建了另一个打印 txt 值的函数。
  2. 正如我们在上面的程序中看到的,返回了 'function_2' 的值,然后我们将一个字符串值传递给了 function_1,并将其分配给了 function_3。
  3. 执行此程序后,它会显示所需的输出。

观察

根据以上观察,我们可以得出结论:

  1. 借助闭包,我们可以在 Python 中调用作用域之外的函数。
  2. 我们可以说闭包是一个函数对象,它记住闭包创建时封闭作用域中的值。
  3. 它是一个记录,其中函数的每个变量都映射到闭包创建时的值或对名称的引用。
  4. 它充当辅助工具,通过闭包副本来获取或访问变量。

何时可以使用闭包

我们可以在以下情况使用闭包:

  1. 程序必须有一个嵌套函数。
  2. 函数应引用封闭函数中的值。
  3. 封闭函数应返回嵌套函数。

更多功能-

闭包的特点是:

  1. 闭包在我们的程序中提供了一种数据隐藏,因此我们可以避免使用全局变量。
  2. 当程序中没有太多函数时,这是一个高效的选择。

程序 3

最后,让我们再看一个使用闭包的有趣程序。

该程序显示了可以使用闭包而不是类的场景。

输出

6
10
17

说明

让我们理解一下我们在程序中做了什么-

  1. 我们创建的函数是 add_num,其中有一个名为 addition 的函数。
  2. 该函数应返回 x+n 的值。
  3. 在下一组语句中,我们使用了不同的方法来添加两个数字。
  4. 执行程序后,它会显示所需的结果。

结论

因此,在本教程中,我们学习了什么是闭包以及何时可以使用它们来使我们的程序更有效。


下一个主题Python Glob 模块