1. 程式人生 > >Python學習筆記(1)__name__變數

Python學習筆記(1)__name__變數

        Python使用縮排對齊組織程式碼的執行,所有沒有縮排的程式碼,都會在載入時自動執行。每個檔案(模組)都可以任意寫一些沒有縮排的程式碼,並在載入時自動執行。為了區分 主執行程式碼和被呼叫檔案,Python引入了變數:__name__。

1)當檔案是被呼叫時,__name__的值為模組名;

2)當檔案被執行時,__name__的值為 ‘__main__’。

基於此特性,為測試驅動開發提供了很好的支援,我們可以在每個模組中寫上測試程式碼,這些測試程式碼僅當模組被Python直接執行時才會執行,程式碼和測試完美的結合在一起。

1、典型的Python檔案結構:


2、Python中的__name__舉例

python作為一種指令碼語言,我們用python寫的各個module都可以包含以上那麼一個類似c中的main函式,只不過python中的這種__main__與c中有一些區別,主要體現在:

1、當單獨執行該module時,比如單獨執行以上hello.py: python hello.py,則輸出

    可以理解為"if __name__=="__main__":" 這一句與c中的main()函式所表述的是一致的,即作為入口;

2、當該module被其它module 引入使用時,其中的"if __name__=="__main__":"所表示的Block不會被執行,這是因為此時module被其它module引用時,其__name__的值將發生變化,__name__的值將會是module的名字。比如在python shell中import hello後,檢視hello.__name__:

3、因此,在python中,當一個module作為整體被執行時,moduel.__name__的值將是"__main__";而當一個module被其它module引用時,module.__name__將是module自己的名字,當然一個module被其它module引用時,其本身並不需要一個可執行的入口main了。


參考文獻: