Python基礎——__name__變量


轉自:https://blog.csdn.net/u011511601/article/details/53504355

 Python使用縮進對齊組織代碼的執行,所有沒有縮進的代碼,都會在載入時自動執行。每個文件(模塊)都可以任意寫一些沒有縮進的代碼,並在載入時自動執行。為了區分 主執行代碼和被調用文件,Python引入了變量:__name__。

1)當文件是被調用時,__name__的值為模塊名;

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

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

典型的Python文件結構

Python中的__name__舉例

#hello.py
def sayHello():
    str="hello"
    print(str);

if __name__ == "__main__":
    print ('This is main of module "hello.py"')
    sayHello()
     
View Code

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

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

This is main of module "hello.py"  
hello  
View Code

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

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

>>> import hello  
>>> hello.__name__  
'hello'  
>>>  
View Code

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM