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

8

我在variables.py文件中声明了一些变量,并为它们赋了一些值:

flag = 0
j = 1

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

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

但是我遇到以下错误:

NameError: name 'flag' is not defined

我该如何解决这个问题?

3
用'variables.flag'代替'flag' - DeathJack
3个回答

10

除了使用变量时有些问题以外,你所做的一切都是正确的。

在你的 main_file.py 文件中:

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

(或者)

使用以下标题:

from variables import *
< p >(或)
from variables import flag, j

将所有与标记和j(或任何其他您想要从该文件中使用的变量)的引用替换为前缀“variables.”

由于这只是变量的副本,如果您在main_file.py中修改它们,variables.py中的值不会受到影响。


9

你可以选择使用

import variables

然后像这样访问变量:
variables.flag
variables.j

或者您可以使用:
from variables import flag, j

并且可以通过变量名直接访问变量。

重要提示

请注意,在第二种情况下,您将使用变量的副本,在一个模块中对其进行修改不会影响另一个模块中的变量!


1
你需要从文件中导入变量。你可以像这样导入全部变量:
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,因为当你的代码变得很大时,你总是可以知道标志变量来自模块变量。这也使您能够在其他模块中使用相同的变量名称flag,如module2.flag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接