python闭包中的函数使用

python闭包中的函数使用
python闭包中的函数使用

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

由于类可以保存数据并且操作数据,所以很轻松就能够使用类来实现计数器。

1、说明

函数本身没法在每次调用时保存数据,所以无法实现一个计数器的功能。但当我们有了 闭包函数,就能够用函数的形式来实现计数器了。

2、实例

我们用闭包函数实现了一个计数器。

def make_counter():
    num = 0
 
    def counter():
        nonlocal num
        num += 1
        return num
 
    return counter
 
counter = make_counter()
print(counter())  # 1
print(counter())  # 2
print(counter())  # 3

会发现内部counter函数有一个nonlocalnum语句,并且可以根据global关键字来理解关键字nonlocal的作用。在函数范围内修改全局范围内的不可变类型变量时,我们使用global关键字来表明某个变量是全局变量,nonlocal关键字也可以表示num是闭包中的变量,global关键字有一个专业术语叫自由变量。一般来说,函数执行完毕后,函数内部的变量将随之被销毁,而自由变量num不会立即被销毁,它与counter函数一起构成闭包。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注