从 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!
我已经声明了一些变量并用 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!