python中的跨模块变量分配

时间:2018-07-06 14:34:34

标签: python variables import module

是否可以通过某种方式导入模块,在其中分配变量,然后在我导入的程序中使用该变量?例如,我可能已经解释得很糟

foo.py =

def main():
   x = 1

然后在另一个程序中

import foo
foo.main()
print(x)

这当然不起作用,在那里 有什么办法做到这一点?

2 个答案:

答案 0 :(得分:0)

在您提供的示例中,当您再次尝试x时,还没有print...。它超出了范围。

您确实有一些选择,其中之一是将其返回:

foo.py =

def main():
   x = 1
   return x

然后在其他地方:

import foo
x = foo.main()
print(x)

答案 1 :(得分:0)

@quamrana涵盖了执行此操作的明智方法-具有返回值-但您也可以直接使用全局变量。说,我们有两个源文件:

foo.py

x = 0

def main():
    global x
    x = 1

bar.py

import foo
print(foo.x) # should print 0
foo.main()
print(foo.x) # should print 1

必须使用global的{​​{1}}函数中的foo.py关键字,以确保将main()视为全局变量(属于模块{{1} })而不是局部变量(属于函数x)。

然后,在foo中,我们必须将main()命名为bar.py,因为x属于foo.x。您还可以使用命名导入来规避这一点:

x