[英]Cross-module variable assigning in python
是否可以通過某種方式導入模塊,在其中分配變量,然后在導入的程序中使用該變量? 例如,我可能已經解釋得很糟
foo.py =
def main():
x = 1
然后,在另一個程序中
import foo
foo.main()
print(x)
當然,這是行不通的,有沒有辦法做到這一點?
在您給出的示例中,當您再次嘗試print
,沒有x
...。 它超出范圍。
您確實有一些選擇,其中之一是返回它:
foo.py =
def main():
x = 1
return x
然后在其他地方:
import foo
x = foo.main()
print(x)
@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
foo.py
的main()
函數中的global
關鍵字對於確保x
被視為全局變量(屬於模塊foo
)而不是局部變量(屬於函數main()
)是必需的。
然后,在bar.py
,我們必須將x
foo.x
為foo.x
,因為x
屬於foo
。 您還可以使用命名導入來規避這一點:
from foo import x, main
print(x) # should print 0
main()
print(x) # should print 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.