Python:从另一个文件访问模块中的变量

时间:2020-10-22 06:05:19

标签: python

我想在另一个python文件中访问var1和var2,我将在另一个函数中使用变量。我该怎么做?

file1.py

def main(x):
    var1 = "link"
    var2 = "email"

file2.py

from file1 import var1, var2
class test:
    def get_email(self):
        return var2
    def get_link(self):
        return var1

2 个答案:

答案 0 :(得分:1)

如果要在单独的模块中使用这些变量,则需要将这些变量放在顶层。

var1 = ....
var2 = ....

def main(x):
    ....

这是因为函数内部的变量是该函数的局部变量,只能在其中访问。

如果您只想在顶层声明变量,而是在函数中分配-

var1 = None
var2 = None

def main(x):
    global var1
    global var2
    # assign here

但是请记住,函数中的变量 assigned 仅在调用该函数的 中反映更改。导入模块不会自动调用该函数,除非在导入模块的顶层 -

中调用该函数
var1 = None
var2 = None

def main(x):
    global var1
    global var2
    # assign here

# x should be defined prior to this
main(x)

答案 1 :(得分:0)

要从另一个文件导入变量和方法,您需要将文件夹中的 init .py和 main .py初始化为空文件。之后,您可以在顶部(最外层名称空间)上声明要导入的变量,也可以从函数中返回它们

A.py

myVar = 1
myString = “help”

def get_variables():
    myVar = 1
    myString = “help”
    return myVar, myString

B.py(第一种方式)

from A import myVar, myString

B.py(第二种方式)

from A import get_variables
myVar, myString = get_variables()