1、基本定义
- 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
- 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
- 当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
1 school = 'CD edu.' #全局变量 2 def change_name(name): 3 school = 'oldboy' 4 print("before change",name,school) 5 name = "Druid" #局部变量,作用域为该函数 6 print("after change",name,school) 7 8 name = 'druid' 9 change_name(name) 10 11 print(name) #任然没有改变 12 print(school) #全局变量仍然没有改变 13 14 print("-----------华丽的分割线-----------") 15 16 school = 'CD edu.' #全局变量 17 def change_name(name): 18 global school #强制修改全局变量。但是不要这么做! 19 school = 'oldboy' 20 print("before change",name,school) 21 name = "Druid" #局部变量,作用域为该函数 22 print("after change",name,school) 23 24 name = 'druid' 25 change_name(name) 26 27 print(name) #任然没有改变 28 print(school) #全局变量被局部变量改变 29 30 print("-----------华丽的分割线-----------") 31 32 def Name(): #不要这么做 33 global name 34 name = "druid" 35 36 Name() 37 print(name) 38 39 print("-----------华丽的分割线-----------") 40 41 names = ["druid","alex"] 42 def change_names(): 43 names[1] = "eric" 44 print("inside ",names) 45 46 change_names() 47 print(names) #全局变量的值发生改变