python基础 - global关键字及全局变量的用法
2015-01-09 11:41
1276 查看
python中global关键字主要作用是声明变量的作用域。
在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如:
在python中,变量不需要先声明,直接使用即可,那我们怎么知道用的是局部变量还是全局变量呢?
首先:python使用的变量,在默认情况下一定是用局部变量。
其次:python如果想使用作用域之外的全局变量,则需要加global前缀。
举例说明,不用global的情况:
下面是使用global前缀的情况:
a = 5
def test():
global a
#此处声明,告诉执行引擎:我要用全局变量a,不要整成局部的了!
a = 1
print 'In test func: a = %d' % a
test()
print 'Global a = %d' % a
执行结果:
事实上,网络上很多文章推崇另外的一种方法来使用全局变量:使用单独的global文件。
方法如下:
1. 在同一个文件夹下,新建2个文件: myglobal.py test.py
2. myglobal.py中放置全局变量,内容示例如下:
在实际使用中,两种方法各有优势,通常我们大多数时候只是用python写小功能的脚本,此时用global关键字就够了。
如果写比较大的功能应用时,用后一种方法可以使得全局变量的管理更为方便。
在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如:
int a = 5; void test(void) { a = 1; // 没有先声明,所以用的是全局的变量a } void test1(void) { int a; a = 2; // 前面声明了,所以用的是局部变量a,对其所做的修改不会影响全局变量a } void main(void) { printf("before: a = %d\n", a); test(); printf("after test: a = %d\n", a); test1(); printf("after test1: a = %d\n", a); }
在python中,变量不需要先声明,直接使用即可,那我们怎么知道用的是局部变量还是全局变量呢?
首先:python使用的变量,在默认情况下一定是用局部变量。
其次:python如果想使用作用域之外的全局变量,则需要加global前缀。
举例说明,不用global的情况:
a = 5 def test(): a = 1 print 'In test func: a = %d' % a test() print 'Global a = %d' % a程序执行结果为:
In test func: a = 1 Global a = 5可以看出,不加global的时候,在函数内部是改不了外面的全局变量的(list类型例外)。
下面是使用global前缀的情况:
a = 5
def test():
global a
#此处声明,告诉执行引擎:我要用全局变量a,不要整成局部的了!
a = 1
print 'In test func: a = %d' % a
test()
print 'Global a = %d' % a
执行结果:
In test func: a = 1 Global a = 1可以看出,在函数内部成功的修改了全局变量的数值。
事实上,网络上很多文章推崇另外的一种方法来使用全局变量:使用单独的global文件。
方法如下:
1. 在同一个文件夹下,新建2个文件: myglobal.py test.py
2. myglobal.py中放置全局变量,内容示例如下:
a = 0 b = 1 c = 2 d = 33. test.py中是测试代码,其中可以使用全局变量
import myglobal def test(): myglobal.a = 100 print 'myglobal a = %d' % myglobal.a test() print 'after test, myglobal a = %d' % myglobal.a执行test.py的结果如下:
myglobal a = 0 after test, myglobal a = 100OK,同样成功修改了全局变量(这个说法不准确,但姑且就这么叫吧)。
在实际使用中,两种方法各有优势,通常我们大多数时候只是用python写小功能的脚本,此时用global关键字就够了。
如果写比较大的功能应用时,用后一种方法可以使得全局变量的管理更为方便。
相关文章推荐
- python基础 - global关键字及全局变量的用法
- Python3基础 global关键字 使函数的局部变量升格为全局变量
- Python学习笔记(7):global关键字及全局变量的用法
- Python基础学习篇——Global全局变量的使用
- python变量总结: 全局变量、局部变量、类变量、实例变量以及global和nonlocal关键字的使用示例
- global全局变量 分类: python基础学习 2013-06-30 09:54 181人阅读 评论(0) 收藏
- 飘逸的python - 为什么修改全局的dict变量不用global关键字
- Python基础学习篇——Global全局变量的使用
- Python 全局变量与global关键字
- Python 里边yield和全局变量global的用法
- 【python】为什么修改全局的dict变量不用global关键字
- python 全局变量的理解(global关键字)
- Python语法基础——关于全局变量与局部变量
- [Python学习] 专题六.局部变量、全局变量global、导入模块变量
- python入门基础教程07 python的局部变量和全局变量
- 全局变量关键字global的使用
- python基础:python的局部变量和全局变量
- python中的全局变量用法分析
- python 局部local和全局global变量
- python中or关键字在变量赋值时的用法