如何使用已导入的变量?

时间:2019-05-06 08:33:34

标签: python import

我正在尝试从另一个模块导入变量。我的愿望是使用“导入模块”方式而不是“从x导入y”方式。 导入行有效,但是尝试从源模块打印变量时出现错误。

我有一个空的 init .py文件;所有文件init,module1和module2都位于同一文件夹中。该文件夹在sys.path中可见。 从x导入y起作用。我想只使用导入模块。 我想念什么?

module1.py:

X=8
List=[8,2,9]
ListOfStrings=["Champa","Lampa", "Dampa"]
All=[X, List, ListOfStrings, String]

print(All)\

module2.py:

import module1
import sys
for p in sys.path:
    print(p)

print(X)

module1已运行,但X显示为未定义。

结果:

[8, [8, 2, 9], ['Champa', 'Lampa', 'Dampa'], 'This is a string']
theactualpath\Desktop\Work Excercises\py_test
Traceback (most recent call last):
  File "theactualpath\Desktop\Work Excercises\py_test\module2.py", line 6, in <module>
    print(X)
NameError: name 'X' is not defined
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u "theactualpath\Desktop\Work\Excercises\py_test\module2.py"]
[dir: theactualpath\Desktop\Work Excercises\py_test]
[path: various paths from my computer, not the current working folder thou]

3 个答案:

答案 0 :(得分:1)

您有两种选择。

引用module1命名空间:

import module1
...
print(module1.X)

将所有内容(或任何您需要的东西)从module1引入到module2命名空间:

from module1 import * # or just import  whatever you need: from module1 import X
...
print(X)

答案 1 :(得分:0)

您好,欢迎来到StackOverflow。

导入模块import module1之后,变量X绑定到模块的名称空间,因此您必须替换

print (X)

使用

print (module1.X)

您的第一个示例(print (X))将从当前文件而不是模块中打印变量X

答案 2 :(得分:0)

使用print(X)是错误的。您必须使用print(module1.X)