由于类可以保存数据并且操作数据,所以很轻松就能够使用类来实现计数器。
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免费测试