Python学习: 关键字global和nonlocal用法

一、global

global关键字用来在函数或其他局部作用域中使用全局变量

1.1 如果局部要对全局变量修改,而不使用global关键字

count = 0
def global_test():
    count += 1
    print(count)
global_test()

会出现如下错误:

UnboundLocalError: local variable 'count' referenced before assignment

1.2 如果局部要对全局变量修改,应在局部声明该全局变量

count=0
def
globaltest1(): global count count+=1 print("globaltest1 "+str(count)) globaltest1() print("count "+str(count))
以上输出为:

globaltest1 1
count 1

1.3 对于函数传值

count=0
def globaltest(count):
    count+=1
    print("globaltest "+str(count))

globaltest(count)
print("count "+str(count))
以上输出为:

globaltest 1
count 0

二、nonlocal

nonlocal声明的变量不是局部变量,也不是全局变量,而是外部潜逃函数内的变量

def  nonlocaltest():
    count=0
    def test():
      nonlocal count
      count+=1
      print("nonlocaltest " + str(count))
    test()
    print("count "+str(count))
nonlocaltest()
以上输出为:

nonlocaltest 1
count 1

原文地址:https://www.cnblogs.com/lzk-seven/p/13807207.html