12-Python-局部、全局变量

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)  #全局变量的值发生改变
原文地址:https://www.cnblogs.com/Druidchen/p/7758243.html