global 标识用于在函数内部,修改全局变量的值。bash
咱们能够经过如下规则,来断定一个变量究竟是在全局做用域仍是局部做用域:函数
下面的示例,有助于理解上述规则:ui
def cook():
global dumplings
dumplings = '10' # 全局变量
print('cook():' + dumplings)
def cook2():
dumplings = '22' # 局部变量
print('cook2():' + dumplings)
def cook3():
print('cook3():' + dumplings) # 全局变量
dumplings = 3 # 全局变量
cook()
print('global:' + dumplings)
cook3()
cook2()
复制代码
运行结果:spa
cook():10 global:10 cook3():10 cook2():22code
注意: 在函数中,若是在变量定义以前先使用它,就会抛错:cdn
def cook():
print(dumplings)
dumplings = 'local'
dumplings = 'global'
cook()
复制代码
运行结果:blog
UnboundLocalError: local variable 'dumplings' referenced before assignment作用域
由于在函数中,存在对 dumplings 的定义赋值语句,因此被认为是局部变量。因此在定义以前,先访问这个局部变量就会抛错。string