全局变量:作用全局,所有的位置均可读
注意,所有的全局变量必须大写(默认规则)
name = 'HAHA'
def f1():
name = 's1' #局部变量name,只作用在f1()中
age = 18
print (name,age)
def f2():
age=19
print (name,age) #当在函数内部未找到name时,检查是否为全局变量,如果是,直接输出全局变量的值
def f3():
global name #声明name为全局变量
name = 's2' #此时,对name的赋值,作用于全局,name被修改
age = 20
print (name,age)
f1()
print (name)
f2()
print (name)
f3()
print (name)
执行结果:
s1 18
HAHA #全局变量name未修改
HAHA 19
HAHA
s2 20
s2 #全局变量name修改为name
当全局变量为字典、列表时,可以被修改:
NAME = [11,22,33]
def f1():
NAME = 's1'
age = 18
print (NAME,age)
def f2():
age=19
NAME.append(99) #通过append的方法,可以修改全局变量
print (NAME,age)
f1()
print (NAME)
f2()
print (NAME)
执行结果:
s1 18
[11, 22, 33]
[11, 22, 33, 99] 19
[11, 22, 33, 99]