python main函數


關於Python的主(main)函數問題
2007-07-23 19:14
初次接觸Python的人會很不習慣Python沒有main主函數。
這里簡單的介紹一下,在Python中使用main函數的方法
#hello.py
def foo():
    str="function"
    print(str);
if __name__=="__main__":
    print("main")
    foo()
其中if __name__=="__main__":這個程序塊類似與Java和C語言的中main(主)函數
在Cmd中運行結果
C:\work\python\divepy>python hello.py
main
function

在Python Shell中運行結果
>>> import hello
>>> hello.foo()
function
>>> hello.__name__
'hello'
>>>
可以發現這個內置屬性__name__自動的發生了變化。
這是由於當你以單個文件運行時,__name__便是__main__
當你以模塊導入使用時,這個屬性便是這個模塊的名字。
 

在C/C++/Java中,main是程序執行的起點,Python中,也有類似的運行機制,但方式卻截然不同:Python使用縮進對齊組織代碼的執行,所有沒有縮進的代碼(非函數定義和類定義),都會在載入時自動執行,這些代碼,可以認為是Python的main函數。

 

每個文件(模塊)都可以任意寫一些沒有縮進的代碼,並且在載入時自動執行,為了區分主執行文件還是被調用的文件,Python引入了一個變量__name__,當文件是被調用時,__name__的值為模塊名,當文件被執行時,__name__為'__main__'。這個特性,為測試驅動開發提供了極好的支持,我們可以在每個模塊中寫上測試代碼,這些測試代碼僅當模塊被Python直接執行時才會運行,代碼和測試完美的結合在一起。

 

典型的Python文件結構:


免責聲明!

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



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