2017-09-05 163 views
0

python相當新,已經瀏覽了各種源,但到目前爲止沒有任何東西讓代碼實際上起作用。我使用的代碼是from file1 import x。 (也試過import file1.x),但他們都讓模塊運行而不是給我變量。 有沒有其他的代碼可以使用或者我錯過了什麼?跨模塊導入變量

+3

Python的值將始終執行代碼在一個導入的模塊中。這是沒有辦法的。這就是它如何正確加載模塊中的代碼。如果您絕對不能有這種行爲,請使用外部配置文件來存儲變量值。 –

+2

任何形式的導入都將「使模塊運行」 - 導入的對象還會如何存在?如果你有一些你不想在導入模塊時運行的代碼(而不是直接運行),那麼約定就是在'if __name__ =='__main __「:'塊中縮進它。 – jasonharper

回答

1

即使只導入一個對象,您也需要知道在導入模塊時對其進行了評估。

所以,如果你想避免這種情況,你可以隱藏一個語句中每個正在運行的功能,如:

# in file1.py 
x = 1 

if __name__ == '__main__': 
    running_function(x) 
    running_function2(x) 

您可以自由聲明變量,但你應該換一切內部函數或類,使在這個特殊的區塊內調用。

-1

我file1.py只有以下行, X = 「Hello World」 的

從文件1的進口X

打印X實際打印從其他文件1