前言
因為雙底線會被 markdown 文字吃掉,以下文章「雙底線、雙等號」請自行補上。
這篇屬於 python 要準備進行更複雜實作的時候才會碰到的狀況,
通常一個簡單的 python 腳本不會需要用到 name = main 這個敘述,
我們可以直接撰寫並執行。
這邊只寫到我要用到的地方,觀念可能不是很清楚,有錯歡迎指正。
說明
不論是 name 或是 main,
用雙引號的表示方式,在 python 中都是屬於一種特殊標誌,
思考問題 (重要)
如果我們透過 import 另外一支 python 程式,
那請問那個被 import 的 python 程式,
內容會不會直接被執行呢?
- 範例:請回答下面的 python 程式,在執行 main.py 後,會輸出什麼內容?
# main.py
import import_module
print("This is main")
# import_module.py
print("This is import module")
思考問題解答
這邊強烈建議自己想一次、並寫一次!!!!
會特別有感覺,而且會更有印象
答案是:
想一下,應該滿合理的對吧!
其實不一定哦!!!
思考 – 我們才剛使用別人的 module? 怎麼還沒做事就直接印東西了呢?
當然,這有可能是寫法的關係,
不過你想想,如果今天 import XXXX 時,
我根本還沒想對他作什麼事情,他就先印一個東西給我,
這樣其實很詭異欸!!! 還可能不知道誰在搞鬼
不過一般來說不會這樣用啦,只是要知道這訊息可能從哪來的
一般來說我們都會定義一些 function,也因為這個特性,
這時就直接載入,就會是正常的行為。
另外一個範例
我們稍微修改一下第二支程式,問題來了,我們執行一樣的 main.py,
這次會印什麼呢?
# import_module.py
if __name__ == "__main__":
print("This is import module")
這段程式基本上沒啥用…也不會有人這樣寫
但我不知道為什麼考試好像會考…
位於 import 的程式,main 是沒有作用的,
重點只要知道「main」就是作為程式的開始點,在執行的當下會被呼叫一個而已。
常用範例程式碼
雖然上面講了那麼多觀念,實際上我們使用大概是這樣:
def main():
pass
if __name__ == "__main__":
main()