Importing variables from another file in Python

痴心易碎 提交于 2020-12-08 06:23:52

问题


I have declared a few variables and initialised them with some value in variables.py:

flag = 0
j = 1

I want to use those values in another file main_file.py:

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

However I get the following error,

NameError: name 'flag' is not defined

How can i solve this problem?


回答1:


Everything you've done is right except when using the variables.

In your main_file.py file:

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

(Or)

Use the following header :

from variables import *

(Or)

from variables import flag, j

Replace all the references of flag and j (or any other variable you want to use from that file) with the prefix 'variables.'

Since this is just a copy of the variable, the values in the variables.py won't get affected if you modify them in main_file.py




回答2:


You can either use

import variables

and then access the vairables like this:

variables.flag
variables.j

or you can use:

from variables import flag, j

and then access the vaiables by just their name.

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!




回答3:


You need to import the variables from the file. You can import all of them like this:

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

Or reference a variable from the imported module like this variables.flag

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

Or import them one by one like this

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

The best way is to use variables.flag preserving the namespace variables because when your code grows large, you can always know that the flag variable is coming from the module variables. This also will enable you to use the same variable name flag within other modules like module2.flag



来源:https://stackoverflow.com/questions/45710477/importing-variables-from-another-file-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!