1. 程式人生 > 其它 >antlr怎麼執行main函式入口_Python面試|一文讓你讀懂if __name__=='__main__'的含義

antlr怎麼執行main函式入口_Python面試|一文讓你讀懂if __name__=='__main__'的含義

技術標籤:antlr怎麼執行main函式入口

喜歡Python的小夥伴,希望本篇文章可以給你帶來幫助!^.^

看到最後,給自己一個學習的基地!不管你是大佬還是小白,一起學習共同進步!感謝大家一直來的支援!

程式入口

對於很多程式語言來說,程式都必須要有一個入口,比如 C,C++,以及完全面向物件的程式語言 Java,C# 等。如果你接觸過這些語言,對於程式入口這個概念應該很好理解,C 和 C++ 都需要有一個 main 函式來作為程式的入口,也就是程式的執行會從 main 函式開始。同樣,Java 和 C# 必須要有一個包含 Main 方法的主類來作為程式入口。

而 Python 則有不同,它屬於指令碼語言,不像編譯型語言那樣先將程式編譯成二進位制再執行,而是動態的逐行解釋執行。也就是從指令碼第一行開始執行,沒有統一的入口。

一個 Python 原始碼檔案除了可以被直接執行外,還可以作為模組(也就是庫)被匯入。不管是匯入還是直接執行,最頂層的程式碼都會被執行(Python 用縮排來區分程式碼層次)。而實際上在匯入的時候,有一部分程式碼我們是不希望被執行的。

舉一個例子來說明一下,假設我們有一個 const.py 檔案,內容如下:

b12144270a2bc7bddbe3a6e993980d21.png

我們在這個檔案裡邊定義了一些常量,然後又寫了一個 main 函式來輸出定義的常量,最後執行 main 函式就相當於對定義做一遍人工檢查,看看值設定的都對不對。然後我們直接執行該檔案(python const.py),輸出:

PI: 3.14

現在,我們有一個 area.py 檔案,用於計算圓的面積,該檔案裡邊需要用到 const.py 檔案中的 PI 變數,那麼我們從 const.py 中把 PI 變數匯入到 area.py 中:

from const import PI​def calc_round_area(radius): return PI * (radius ** 2)​def main(): print "round area: