你可能在 Python 腳本中經常看到這行程式碼 if __name__=="__main__": ,但不知道它的實際用途是什麼。別擔心,因為在這篇簡短的部落格中我們將討論這個
當您直接執行程式或腳本時,Python 會自動將「main」指派給特殊的 name 變數。這樣做基本上是為了表明該文件是此處的“主”腳本,並且正在直接運行而不是導入到另一個腳本中。
要理解這一點,請建立一個新的 Python 腳本,假設將其命名為「example.py」並寫入:
print("Name of Script: ", __name__)
執行此命令,您將看到輸出的腳本名稱:__main__。這只是因為文件是直接運行的。
現在,建立另一個 python 腳本檔案並將 example.py 匯入到此檔案中。運行它,您將看到不同的結果,顯示腳本名稱:範例。這只是因為現在我們不是直接運行它,而是導入腳本並間接運行它。因此,Python 現在顯示檔案的實際名稱。
讓我們對範例文件進行一些更改,以便我們可以更好地理解它。
def s_name(): print("Name of Script: ", __name__) s_name() def greet(): print("Hello! How are you doing?") if __name__=="__main__": greet()
現在,如果您直接執行此命令,所有內容都將完美執行,但如果您執行導入 example.py 腳本的其他文件,您會注意到greet 函數呼叫未執行。這是為什麼?
這是因為 if 條件。條件的作用是檢查檔案是否正在直接運作。如果直接運行,main 將被分配給特殊變數 name,這將使此條件成立,並且條件內的所有內容將照常運行。
但另一方面,如果您將其匯入另一個檔案並從那裡間接運行它,那麼條件語句將不為真,並且放置在條件中的任何內容都不會被執行。
這就是這個條件語句的意義。 當我們將腳本匯入為模組時,它可以防止 Python 解釋器自動執行不必要的程式碼行。
但是,即使我們將腳本作為模組導入,我們也可以呼叫這些函數。例如:
import example example.greet()
這樣,即使條件不滿足,我們也可以完美地呼叫導入模組中的任何函數。
以上是if __name__ =__main__ 在 Python 中做什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!