Python 闭包

像 Python 这样的语言有大量有趣的概念,旨在简化程序员的工作。

在本教程中,我们将学习 python 闭包。但是在此之前,让我们修改嵌套函数,看看它们如何作为理解这个主题的先决条件。

那么,让我们开始吧:

计划 1:

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


#outer function
def function_1(txt):

    #inner function
    def function_2():
        print(txt)

    function_2()

function_1('Python at JavaTpoint')

输出:

Python at JavaTpoint

说明:

让我们了解我们在这个项目中做了什么-

  1. 我们创建了函数 _1,它接受参数 txt,在这个函数中,我们创建了另一个函数,它打印 txt 的值。
  2. 如我们所见,在上面的程序中调用了“function_2”,然后我们在 function_1 中传递了一个字符串值。
  3. 在执行该程序时,它会显示所需的输出。

程序 2:

现在,让我们看看闭包如何帮助简化我们的工作和增强我们的程序。

下面的程序说明了同样的情况-


#outer function
def function_1(txt):

    #inner function
    def function_2():
        print(txt)

    return function_2()

function_3=function_1('Let us learn a programming language.')
function_3()

输出:

Let us learn a programming language.

说明:

让我们了解我们在这个项目中做了什么-

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

观察:

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

  1. 借助闭包,我们可以调用 Python 中范围之外的函数。
  2. 我们可以说闭包是一个函数对象,它记住了封闭范围内的值。
  3. 它是一个记录,在该记录中,函数的每个变量都与创建闭包时的值或对名称的引用进行映射。
  4. 它在闭包副本的帮助下帮助获取或访问变量。

我们什么时候可以使用闭包

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

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

更多功能-

封闭装置的特点是:

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

计划 3:

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

程序显示了我们可以用闭包代替类的情况。


def add_num(n):
    def addition(x):
        return x+n
    return addition
add_2=add_num(2)
add_8=add_num(8)
print(add_2(4))
print(add_2(8))
print(add_8(add_2(7)))

输出:

6
10
17

说明:

让我们了解我们在上面的程序中做了什么-

  1. 我们创建的函数是 add_num,在这个函数里面,还有一个叫做加法的函数。
  2. 这个函数应该返回 x+n 值。
  3. 在下一组语句中,我们使用了不同的方法将两个数字相加。
  4. 在执行程序时,它会显示所需的结果。

结论

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


原创文章,作者:EIT5L,如若转载,请注明出处:https://www.506064.com/n/130011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
EIT5L的头像EIT5L
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python编程二级证书考试相关现已可以上网购买

    计算机二级Python考试是一项重要的国家级认证考试,也是Python编程的入门考试。与其他考试一样,Python编程二级证书的考生需要进入正式考试,而为了备考,这篇文章将详细介绍…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论