如何导入模块中定义的变量?

2024-06-23 02:57:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我已将一些数据存储在另一个要调用的模块中,但无法从该模块检索变量值。我该怎么做?你知道吗

module_with_data.py

def values():
    global x
    x = 1
values()

main.py

import module_with_data
x = 1 + x 

它应该输出2,但我不能得到这个工作。你知道吗


Tags: 模块数据pyimportdatamaindefwith
2条回答

模块_数据.py

x = 1

主.py

from module_with_data import x
x = x + 1
print(x)

看起来您需要这样一个干净的语法,但是,要小心使用模块中的裸变量,就好像它们是全局变量一样,尤其是在更改它们的值时。对于简单的代码来说,这很好,但是一旦代码库变大,我们就会忘记一些事情。你知道吗

要更改的x在被赋值之前不存在,但是由于它在函数内部被赋值,所以它是在该函数的作用域中创建的,在函数外部不可用。你知道吗

您可以在函数中为全局x赋值,如果这在您的例子中更有意义的话,但是您必须将x声明为global

def values()
    global x
    x = 1


values()

或者,不要在函数中声明它,而是将赋值放在模块的主体中:

x = 1

其次,您要导入整个模块,但这意味着您只有在为其命名名称空间时才能访问其内容:

import module_with_data

module_with_data.x = 1 + module_with_data.x

或者,可以将其添加到导入脚本的命名空间中:

from module_with_data import x

x = 1 + x

相关问题 更多 >

    热门问题