2017-03-18 64 views
0

我有兩個文件file1和file2。有沒有辦法從文件中導入項目而無需運行python中的所有代碼

文件2是這樣的:

print "Why is this printing" 

var = 7 

文件1是這樣的:

from file2 import var 

print var 

當我運行這段代碼,它輸出以下:

>>>Why is this printing 
>>>7 

是否有辦法我可以從file2獲得var而不需要運行var聲明之上的代碼?

+1

把語句放在函數 –

+0

中,並使用'__name__' –

回答

0

您可以使用標準

if __name__ == "__main__": 

後衛,以保護某些行從導入執行。只有在運行該特定文件時纔會滿足該條件,而不是導入該文件。

1

如果你不想代碼,當一個模塊導入運行,把它放在一個函數:

def question(): 
    print "Why is this printing" 

如果您希望在模塊傳遞到Python解釋器上運行的功能命令行,將其置於條件表達式塊中:

if __name__ == '__main__': 
    question() 

eg

c:/> python file2.py 
Why is this printing 
+0

我明白了。謝謝!我想知道:爲什麼在這裏給出的答案http://stackoverflow.com/questions/6523791/why-is-python-running-my-module-when-i-import-it-and-how-doi-i-停止它使用'主'功能 - 它看起來沒有任何作用。 – Keagan

+0

這是一個例子。如果您希望程序執行某些操作,請將'pass'替換爲實際的代碼。 –

相關問題