Python - Closure(闭包)

【 将函数与函数运行的环境封装在一起的对象叫做闭包 】

 



在哪里有用到呢?=>【Sqlalchemy - 数据查询(无条件查询+条件查询)



闭包的内部函数中使用的变量一般来自外层函数的传参,外层函数返回内部函数的函数名;

调用时赋值给新变量,新变量添加括号即可使用该闭包(如上)。

>>>
>>> def A(data):
...     def A_a():
...             print(data)
...     return A_a
...
>>> new = A(12)
>>> new
<function A.<locals>.A_a at 0x000000BEC82B0730>
>>> new()
12
>>> del A
>>> A(12)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'A' is not defined
>>> new()
12
>>> new
<function A.<locals>.A_a at 0x000000BEC82B0730>
>>>


python装饰器使用到了闭包:

专题:【Python装饰器自定义

 

 

版权声明:本文为qq_42292831原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42292831/article/details/89442155