python闭包中的函数使用

777次阅读
没有评论

python闭包中的函数使用

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

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

python闭包函数实例

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

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函数一起构成闭包。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-05-04发表,共计563字。
新手QQ群:570568346,欢迎进群讨论 Python51学习