Python闭包

作用域

def change_msg():
    msg = 'yes'
    def changer():
        msg = 'no'
    changer()
    print(msg)
change_msg()
# yes

函数外部不可访问局部变量

 

嵌套函数

def print_msg():
    msg = 'OK'
    
    def printer():
        print(msg)
    printer()
print_msg()
# ok

在一个函数内部定义函数被称为嵌套函数

 

闭包

def adder(x):
    def wrapper(y):
        return x+y
    return wrapper

adder5 = adder(5)
adder5(2)
adder5(6)

此时adder函数将嵌套函数wrapper返回

首先设置x为5 然后依次传入 y = 2、6

 

闭包的用处

1.闭包执行完成后,依然能保持当前的运行环境

2.通过改变外作用域的局部变量可以得到不同的结果

上一篇:22:WEB漏洞-文件上传之内容逻辑数组绕过与解析漏洞


下一篇:两段超简单jquery代码解决iframe自适应高度问题(不用判断浏览器高度)