全局与局部变量

定义:
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
 
作用域:
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
 
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

 

1 def change_name(name):
2     print('before change',name)
3     name='Zoe'  #局部变量。这个函数就是这个局部变量的作用域。
4     print('after change',name)
5 
6 name='zoe'  #全局变量。
7 change_name(name)
8 print(name)

 

 

将函数中的局部变量声明为全部变量。

 1 def change_name(name):
 2     global school  #用global在函数中将布局变量声明为全局变量。
 3     school='666'
 4     print('before change',name)
 5     name='Zoe'  #局部变量。这个函数就是这个局部变量的作用域。
 6     print('after change',name)
 7 
 8 name='zoe'
 9 change_name(name)  
10 print(name)
11 print(school)  #在函数中global定义全局变量,如果函数不调用,则会返回school未定义。

 

 

除了字符串,元组,数字等本身就不能变的变量不能在函数中进行修改,列表,字典和集合等定义好的全局变量,在子程序中还是可以进行修改的。

看下面的函数:

1 names=['zoe','alice']
2 def change():
3     print(names)
4     names[0]='Zoe'
5 
6 print(names)
7 change()
8 print(names)

返回:

 

posted on 2017-06-22 16:59  Zoe233  阅读(168)  评论(0编辑  收藏  举报