是否可以通过某种方式导入模块,在其中分配变量,然后在我导入的程序中使用该变量?例如,我可能已经解释得很糟
foo.py =
def main():
x = 1
然后在另一个程序中
import foo
foo.main()
print(x)
这当然不起作用,在那里 有什么办法做到这一点?
答案 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