模块全局变量

时间:2015-11-09 22:51:11

标签: python python-2.7 python-module

我使用的是一个导入模块并使用其功能和变量的python程序(版本2.7),如下所示。

这是模块。

# module.py

variable = 2

def function(number):
    global variable
    variable = number

这是使用该模块的程序。

# program.py

from module import *
print variable
function(1)
print variable

该程序打印以下内容:

2
2

但是,如果您将program.py更改为:

# program.py

import module
print module.variable
module.function(1)
print module.variable

程序打印出来:

2
1

我不知道为什么会这样。任何见解都会有所帮助。

谢谢,

海龟

1 个答案:

答案 0 :(得分:0)

使用global关键字无法实现您的目标。 在python中,全局变量仅全局模块并且不在模块之间共享(不像在例如C中那样)。有关此主题的更多信息,另请参阅this PEP

此外,你在你的例子中所做的是丑陋的全球滥用,导致无法维护和难以调试的程序。根据您的具体情况,有更好的方法可以做到这一点。