簡體   English   中英

python中的跨模塊變量分配

[英]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.pymain()函數中的global關鍵字對於確保x被視為全局變量(屬於模塊foo )而不是局部變量(屬於函數main() )是必需的。

然后,在bar.py ,我們必須將x foo.xfoo.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM