像 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,它接受参数 txt,在这个函数中,我们创建了另一个函数,它打印 txt 的值。
- 如我们所见,在上面的程序中调用了“function_2”,然后我们在 function_1 中传递了一个字符串值。
- 在执行该程序时,它会显示所需的输出。
程序 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,它接受参数 txt,在这个函数中,我们创建了另一个函数,它打印 txt 的值。
- 正如我们所看到的,“function_2”的值在上面的程序中返回,然后我们在 function_1 中传递了一个字符串值,并将其分配给 function_3。
- 在执行该程序时,它会显示所需的输出。
观察:
根据以上观察,我们可以得出结论-
- 借助闭包,我们可以调用 Python 中范围之外的函数。
- 我们可以说闭包是一个函数对象,它记住了封闭范围内的值。
- 它是一个记录,在该记录中,函数的每个变量都与创建闭包时的值或对名称的引用进行映射。
- 它在闭包副本的帮助下帮助获取或访问变量。
我们什么时候可以使用闭包
我们可以在以下情况下使用闭包:
- 程序必须有嵌套函数。
- 函数应该引用封闭函数中的一个值。
- 封闭函数应该返回嵌套函数。
更多功能-
封闭装置的特点是:
- 闭包在我们的程序中提供了一种数据隐藏,因此我们可以避免使用全局变量。
- 当我们的程序中没有太多函数时,这是一个有效的选择。
计划 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
说明:
让我们了解我们在上面的程序中做了什么-
- 我们创建的函数是 add_num,在这个函数里面,还有一个叫做加法的函数。
- 这个函数应该返回 x+n 值。
- 在下一组语句中,我们使用了不同的方法将两个数字相加。
- 在执行程序时,它会显示所需的结果。
结论
因此,在本教程中,我们学习了什么是闭包,以及何时可以使用它们来提高程序的效率。