1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:ersa 4 5 """ 6 全局与局部变量 7 8 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 9 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。 10 当全局变量与局部变量同名时: 11 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。 12 """ 13 school = "tsinghua" #全局变量 14 g_school = "ustc" 15 g_names = ["alex","Jack","ersa"] 16 def change_name(name): 17 school = "beida" #局部变量 更改不影响全局变量 18 print("local school ", school) 19 print("before change ",name) 20 name += "Ma" 21 print("after change",name) 22 global g_school # 修改全局变量前需要 使用 global 定义,但一般不建议这么使用 23 print("before change g_school ", g_school) 24 25 g_school = "beijing ustc" 26 print("after change g_school ", g_school) 27 28 print("before change g_names ",g_names) 29 g_names[0] = "金角大王" #全局列表、集合、字典在函数中可直接修改 30 31 name="ersa" 32 change_name(name) 33 print(name) 34 print("external school",school) #全局变量 35 print("after change external g_school ",g_school) 36 print("after change g_names", g_names)