我有兩個文件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聲明之上的代碼?
我有兩個文件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聲明之上的代碼?
您可以使用標準
if __name__ == "__main__":
後衛,以保護某些行從導入執行。只有在運行該特定文件時纔會滿足該條件,而不是導入該文件。
如果你不想代碼,當一個模塊導入運行,把它放在一個函數:
def question():
print "Why is this printing"
如果您希望在模塊傳遞到Python解釋器上運行的功能命令行,將其置於條件表達式塊中:
if __name__ == '__main__':
question()
eg
c:/> python file2.py
Why is this printing
我明白了。謝謝!我想知道:爲什麼在這裏給出的答案http://stackoverflow.com/questions/6523791/why-is-python-running-my-module-when-i-import-it-and-how-doi-i-停止它使用'主'功能 - 它看起來沒有任何作用。 – Keagan
這是一個例子。如果您希望程序執行某些操作,請將'pass'替換爲實際的代碼。 –
把語句放在函數 –
中,並使用'__name__' –