1. 程式人生 > >python檔案中的__name__=='__main__'的使用及呼叫其他py檔案中的函式方法

python檔案中的__name__=='__main__'的使用及呼叫其他py檔案中的函式方法

最近學習python的時候經常會看到好多py檔案中都有if _name_ == ‘_main_‘: 這句話,所以就花點兒時間來研究一下,總結了一下使用方法及原則。

平時我們使用python IDE編寫py程式的時候 一般是很少用到if name == ‘main‘:這句話的,因為我們在執行py檔案時,沒有牽扯到其他目錄下自定義的py檔案,所以不用寫這句話就可以無憂地執行當前py檔案中的函式,但 想想 如果要是需要呼叫其他的py檔案中的自定義函式呢?這就需要使用if name == ‘main‘:了。

舉例:

def a(x):
    return x*2
if __name__=="__main__"
: print a(2) #print 4

這裡使用的單檔案執行,輸出為4;並且這裡使用了 if name==”main“: (如果不使用這句話,輸出效果是一樣的)

如果在test1.py檔案中定義了一個函式a,想要在test2.py檔案中呼叫a函式,這時候就需要if name==”main“:了。
舉例說明:
test1.py

def a(x):
    return x*2
if __name__=="__main__":
    print a(2)

test2.py

from test1 import *
print a(3) #6

這裡在test2中呼叫test1中自定義函式a,輸出結果為6。
這裡如果在test1中沒有使用if name

==”main“:這句話,則輸出結果中會多出一次計算結果,原因是如果沒有if name==”main“:則test2中會對該檔案中的可執行語句都會執行(相當於沒有main函式)。如果有if name==”main“:的話,相當於判斷一下test1檔案是否是單獨執行的test1檔案還是在其他檔案中呼叫的自定義函式,這裡的例子就是第二種情況了,所以在if name==”main“:下面的語句就不會執行。

另外,這裡也講講如何在另一個檔案中呼叫當前檔案中的自定義函式?

例如,需要在python檔案a中呼叫同級目錄test資料夾中的b檔案中的c()自定義函式,如何在a檔案中實現?

from test.b import
* #從檔案路徑為test.b的檔案中匯入所有的函式 c( ) #呼叫b檔案中的c函式