如何在python包中使用全局变量

时间:2018-02-19 16:10:18

标签: python global-variables packages

我有几个python函数,我试图创建一个包。每个函数都存在于自己的python文件中,并使用全局变量将一些对象返回到全局环境,其中一些对象被其他python函数使用。

当这些函数是在python控制台中定义的独立函数时,它们可以正常工作,但是当我将它们放在一个python包中时,全局变量不再作为全局变量返回。

为什么使用包文件定义的函数不返回全局变量/如何绕过它?

一个非常简单的例子:

python_function1.py

def function1(x):
    global new_table
    new_table = x

python_function2.py

def function2(new_table):
    global new_table2
    new_table2 = new_table

1 个答案:

答案 0 :(得分:3)

根据文件说明:

  

在单个模块中跨模块共享信息的规范方法   程序是创建特殊模块(通常称为config或cfg )。   只需在您应用的所有模块中导入配置模块;   然后该模块可用作全局名称。   因为每个模块只有一个实例,所以对其进行了任何更改   模块对象随处可见。

您可以查看此文档以获取示例代码:

https://docs.python.org/3/faq/programming.html#how-do-i-share-global-variables-across-modules