新手小白由python的web開發本地404引發的對if __name__ == ‘__main__‘:的思考

2020-09-25 12:01:03

新手小白自學python搭建區塊鏈應用(原文:程式設計師們,只需三步,教你搭建一個區塊鏈程式 | 經典好文),之前只瞭解過python和web開發的一些基礎知識,沒實踐過,對著該教學一步一步實驗的。
然而出現了本地網頁404的問題:
404 Not Found
對照程式碼發現是要呼叫的函數在if name == 'main’函數之後,if name == 'main’相當於C中的主函數,但又不完全一樣,我分別在if name == 'main’函數前、函數中、函數後進行輸出測試。
程式碼
不管在不在main裡面都被列印了

再查閱其他部落格得出結論如下:

  1. python是屬於指令碼語言,不像編譯型語言那樣先將程式編譯成二進位制再執行,它是順序執行,即使寫在if name == 'main’外面也會被執行到。
  2. 函數要被呼叫才能執行,當前函數沒執行完不會跳到下一個,所以寫在if name == 'main’函數後面的函數,除非__main__執行完了才會有被閱讀的可能,但if name == 'main’執行完了也沒東西呼叫它了。所以函數不能寫在if name == 'main’的後面。(圖中的exx是我在退出當前埠監聽之後才列印的)
  3. 為了程式碼邏輯性更強,main之外不要有直接可執行程式碼,語句全部封裝起來。

參考:
Python中if name == ‘main’:的作用和原理
Python程式執行順序
if name == ‘main’ 如何正確理解?