【问题标题】:Module global variables模块全局变量
【发布时间】:2016-02-10 17:31:45
【问题描述】:

我正在使用一个 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

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

谢谢,

乌龟????

【问题讨论】:

    标签: python python-2.7 python-module


    【解决方案1】:

    使用global 关键字无法实现您要执行的操作。 在 python 中,全局变量仅对它们的模块全局的,并且不跨模块共享(不像在例如 C 中那样)。另请参阅this PEP 了解有关此主题的更多信息。

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

    【讨论】:

      猜你喜欢
      • 2015-03-07
      • 1970-01-01
      • 2016-10-20
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多