# 定义全局变量 a = 100 print(a) # def test1(): # a = 200 # print(a) # # # def test2(): # print(a) # 虽然没有定义变量a但是依然可以获取其数据 # # 调用函数 # test1() # test2() # 如果函数内定义了,那么优先使用局部变量,没定义则使用全局变量 # print(a) # 当函数内出现局部变量和全局变量相同名字时,函数内部中的 # 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值 # 如果在函数中出现global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名 = 数据 # 也理解为对全局变量进行修改,而不是定义局部变量 def test1(): global a a = 200 print(a) def test2(): a = 300 # 这里a是局部变量,global 声明全局变量时 print(a) # 如果函数里没有改变这个全局变量的值则可以在不用在这个函数里声明全局变量 # 而是直接使用这个变量(见上面第二个例子),如果函数里还要定义这个值,则要声明 test1() test2() print(a)