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)