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

在本教程中,我们将学习有关Python闭包的知识。但在此之前,让我们回顾一下嵌套函数,看看它们如何作为理解这个主题的先决条件。

所以,让我们开始:

程序1:

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

#outer function  
def function_1(txt):  
      
    #inner function  
    def function_2():  
        print(txt)  
          
    function_2()  
      
function_1('Python at javatiku')  

输出:

Python at javatiku

解释:

让我们了解一下这个程序中做了什么-

  1. 我们创建了function_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. 我们创建了function_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,在其中有另一个名为addition的函数。
  2. 该函数应该返回x + n的值。
  3. 在下一组语句中,我们以不同的方式添加了两个数字。
  4. 执行此程序后,它将显示所需的结果。

结论

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

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程