从 Python 中的另一个文件导入变量

Importing variables from another file in Python

我已经声明了一些变量并用 variables.py 中的一些值初始化了它们:

flag = 0
j = 1

我想在另一个文件中使用这些值 main_file.py:

import variables
if(flag == 0) :
   j = j+1

但是我得到以下错误,

NameError: name 'flag' is not defined

我该如何解决这个问题?

你所做的一切都是正确的,除了使用变量。

在您的 main_file.py 文件中:

if(variables.flag == 0) :
    variables.j = variables.j + 1

(或)

使用以下 header :

from variables import *

(或)

from variables import flag, j

用前缀 'variables.'

替换 flag 和 j(或您要从该文件中使用的任何其他变量)的所有引用

因为这只是变量的副本,所以如果您在 main_file.py

中修改它们,variables.py 中的值将不会受到影响

您需要从文件中导入变量。您可以像这样导入所有这些:

from variables import *
if(flag == 0) :
   j = j+1

或者像这样从导入的模块中引用一个变量variables.flag

import variables
if(variables.flag == 0) :
   j = j+1

或者像这样一一导入

from variables import flag, j
if(flag == 0) :
   j = j+1

最好的方法是使用 variables.flag 保留命名空间 variables 因为当你的代码变大时,你总是可以知道标志变量来自模块变量。这也将使您能够在其他模块中使用相同的变量名标志,例如 module2.flag

您可以使用

import variables

然后像这样访问变量:

variables.flag
variables.j

或者您可以使用:

from variables import flag, j

然后仅通过名称访问变量。

Important:

Please note that in the second case, you will be working with a copy of the variables, and modifying them in one module has no effect on the variables in the other module!