在函数内部定义的变量叫局部变量,在函数外定义的变量叫全局变量
- 如果全局变量和局部变量名称相同,则在函数内部用的是局部变量的值,就像就近原则一样;在函数体外,用的还是全局变量
a = 10
def test():
a = 11
print(a)
test()
print(a)
结果
11
10
- 如果想在函数内部修改不可变类型全局变量的值,则需要global关键字修饰
a = 10
print(a)
def test1():
# 如果想修改全局变量必须加global
global a
a = 100
print("global a %d"%a)
test1()
def test2():
print(a)
test2()
运行结果:
10
100
100
- 在函数内部修改可变类型的全局变量的值,不需要任何修饰
Python中的可变类型:
- 列表 list
- 字典 dict
不可变类型
- 数值类型 int, long, bool, float
- 字符串 str
- 元组 tuple