2024-06-23 02:57:29 发布
网友
我已将一些数据存储在另一个要调用的模块中,但无法从该模块检索变量值。我该怎么做?你知道吗
module_with_data.py:
module_with_data.py
def values(): global x x = 1 values()
main.py:
main.py
import module_with_data x = 1 + x
它应该输出2,但我不能得到这个工作。你知道吗
模块_数据.py
x = 1
主.py
from module_with_data import x x = x + 1 print(x)
看起来您需要这样一个干净的语法,但是,要小心使用模块中的裸变量,就好像它们是全局变量一样,尤其是在更改它们的值时。对于简单的代码来说,这很好,但是一旦代码库变大,我们就会忘记一些事情。你知道吗
要更改的x在被赋值之前不存在,但是由于它在函数内部被赋值,所以它是在该函数的作用域中创建的,在函数外部不可用。你知道吗
x
您可以在函数中为全局x赋值,如果这在您的例子中更有意义的话,但是您必须将x声明为global:
global
def values() global x x = 1 values()
或者,不要在函数中声明它,而是将赋值放在模块的主体中:
其次,您要导入整个模块,但这意味着您只有在为其命名名称空间时才能访问其内容:
import module_with_data module_with_data.x = 1 + module_with_data.x
或者,可以将其添加到导入脚本的命名空间中:
from module_with_data import x x = 1 + x
模块_数据.py
主.py
看起来您需要这样一个干净的语法,但是,要小心使用模块中的裸变量,就好像它们是全局变量一样,尤其是在更改它们的值时。对于简单的代码来说,这很好,但是一旦代码库变大,我们就会忘记一些事情。你知道吗
要更改的
x
在被赋值之前不存在,但是由于它在函数内部被赋值,所以它是在该函数的作用域中创建的,在函数外部不可用。你知道吗您可以在函数中为全局
x
赋值,如果这在您的例子中更有意义的话,但是您必须将x
声明为global
:或者,不要在函数中声明它,而是将赋值放在模块的主体中:
其次,您要导入整个模块,但这意味着您只有在为其命名名称空间时才能访问其内容:
或者,可以将其添加到导入脚本的命名空间中:
相关问题 更多 >
编程相关推荐