局部作用域(局部变量)
def change(x):
print("before change:",x)
x="feng"
print("after change:",x)
name="OO"
change(name)
print(name)
#运行结果:before change: OO
after change: feng
OO
name是局部变量,函数中虽然将name改为feng,但最终输出的那么依然是OO
全局作用域(全局变量) global的作用是将局部变量改为全局变量
school="FF"
def change_school(name):
global school #将school设置为全局变量
school="FeiFan"
print(name)
print(school)
print(school)
change_school(school)
print(school)
#运行结果:FF
FF
FeiFan
FeiFan
第一次打印school未变化,为FF;将school传给name,故name为FF,school已经被改变,故为FeiFan,最后一次打印school也为FeiFan
name=[1,2,3,4,5]
def change():
name[2]="00000"
print(name)
change()
print(name)
#运行结果:[1, 2, '00000', 4, 5]
[1, 2, '00000', 4, 5]
数字,字符串的全局变量在局部变量中不能直接修改
列表,字典,集合的全局变量在局部可以修改。