赛博红兔的科技博客

CyberHongTu shares news, insights, and musings on fascinating technology subjects.


和我一起玩Python:30. Python闭包

在我们关于Python闭包的讲座里,咱们讲了闭包是啥——就是一个函数里套另一个函数,还有一个自由变量。这个自由变量是在外面那个函数里定义的,但是在里面那个函数里用的。

咱们用了个例子来说明,有个叫outer()的函数,它里面定义了另一个叫inner()的函数,还定义了一个变量count。这个inner()函数能用nonlocal这个关键词改count的值,这就表示count是个外部变量。每次调用my_counter()——也就是inner()的一个实例——都会让count加1,这就展示了闭包记住外部作用域变量状态的能力,即便是外面那个函数执行完了也不影响。这个能力让闭包和普通函数不一样,也为学习更高级的内容,比如装饰器,铺平了道路。



Leave a comment