[TimLinux] Python nonlocal和global的作用
Posted TimLinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[TimLinux] Python nonlocal和global的作用相关的知识,希望对你有一定的参考价值。
1. 执行代码
以下实例都是通过执行以下代码,需要把以下执行代码放在后面实例代码的后面。
a = outer_func()
print("call a()") a() a() a() b = outer_func()
print("call b()") b() b() b()
2. 未使用nonlocal
def outer_func(): count = 3 def inner_func(): count += 1 print("count", count) return inner_func #output>>> # count += 1 #UnboundLocalError: local variable ‘count‘ referenced before assignment
3. 使用nonlocal
def outer_func(): count = 3 def inner_func(): nonlocal count count += 1 print("count", count) return inner_func # output>>> # call a() # count 4 # count 5 # count 6 # call b() # count 4 # count 5 # count 6
4. 使用global (出错)
def outer_func(): count = 3 def inner_func(): global count count += 1 print("count", count) return inner_func # output>>> # count += 1 # NameError: name ‘count‘ is not defined
5. 使用global (成功)
count = 3 def outer_func(): def inner_func(): global count count += 1 print("count", count) return inner_func # output>>> # call a() # count 4 # count 5 # count 6 # call b() # count 7 # count 8 # count 9
以上是关于[TimLinux] Python nonlocal和global的作用的主要内容,如果未能解决你的问题,请参考以下文章