2016-02-07 132 views
1

所以在我file1.py,我有這樣的:導入功能在另一個文件

def run(): 
    # Do something 

print "Hi" 

現在我想在另一個文件中使用函數run()

from file1.py import run 

但是,當我執行其他文件時,它還打印Hi。我如何壓制這一點?

回答

2

if __name__ == "__main__"子句中添加print "Hi"

當python導入模塊時,它執行其中包含的代碼以構建模塊名稱空間。如果將模塊作爲主腳本運行,__name__將被分配到__main__,並且if子句中的代碼將被執行。

既然你沒有運行該腳本作爲主腳本__name__被分配到模塊__name__(在這種情況下file1),因此本次測試將不會成功和print語句是不會得到執行。

def run(): 
    # Do something 

if __name__ == "__main__": 
    print "Hi" 
0

,如果你不想被打印嗨,只需從file1.py

刪除,如果你想在運行時(要打印喜)被調用的,那麼它屬於運行它縮進()函數。

1

你應該包括的功能在此之後:

這個運行程序

如果主要 == 「」:#之前和之後的 '主' 和 '名'有兩個under_scores! 打印「嗨」等...