python 全局变量的简单理解

在工作过程中,在使用全局变量时遇到了些问题,

有两个文件,一个是tt.py,代码如下,

1 #coding=utf8
2 
3 SUM_COST = 0
4 
5 def cons():
6     global SUM_COST #如果要修改全局变量一定要加gloal声明,单纯的读取则不用
7     SUM_COST += 1
8     print SUM_COST

另一个是cc.py,代码如下,

#coding=utf8

from tt import SUM_COST, cons

print SUM_COST
cons()
print SUM_COST

个人理解cc里输出应该分别是0,1但发现输出的都是0,

发现调用cons()并不会修改cc脚本里的全局变量,也就是说

from tt import SUM_COST 引入的变量应该是一个副本?(个人猜测)

怎样才能真正使用这个全局变量呢?解决方法如下了,代码如下,

1 from tt import SUM_COST, cons
2 import tt
3 
4 print SUM_COST
5 cons()
6 print SUM_COST
7 print tt.SUM_COST #加上模块名

加上tt作模块名就解决了这个问题!

posted @ 2012-12-06 10:37  践道者  阅读(1098)  评论(0编辑  收藏  举报