另外,爲什麼我們使用下劃線?畢竟,我將主要方法定義爲main()
,而不是__main__()
。爲什麼在Python中使用「if __name __ =='__ main__':main()」而不是簡單的「main()」?
0
A
回答
-1
Python不知道像C或Java這樣的「main」函數。 你有更多的解釋在這裏:what-does-if-name-main-do
0
當Python解釋器運行的模塊(源文件)爲主要程序,這臺特殊的__name__變量具有值「__main__」,而不是主要的()。
1
當Python解釋器讀取一個源文件時,它會執行所有在其中找到的代碼 。在執行代碼之前,它將定義幾個特殊變量。例如,如果python解釋器正在運行 該模塊(源文件)作爲主程序,它將設置特殊的
__name__
變量的值爲"__main__"
。如果此文件正從另一個模塊導入,則__name__
將設置爲該模塊的 名稱。對於您的腳本,我們假設它正在執行主要功能,例如 。你說像
python threading_example.py
在命令行上。設置特殊變量後,將會執行導入語句並加載這些模塊。然後, 評估def塊,創建一個函數對象並創建一個名爲myfunction的變量,該變量指向函數對象。它將 然後讀取if語句並看到
__name__
確實等於"__main__"
,因此它會執行那裏顯示的塊。這樣做的原因之一是,有時你會寫一個模塊 (一個.py文件),它可以直接執行。或者,它也可以導入並在另一個模塊中使用 。通過執行主要檢查, ,您可以讓該代碼僅在您想將該模塊作爲 程序運行時執行,並且當某人只是想要導入 模塊並自行調用您的函數時不會執行該代碼。
相關問題
- 1. 如果__name __ ==「__ main__」:main(),Io是否等價於Python的?
- 2. 如果__name __ ==「__ main__」:main(),Factor是否等價於Python成語?
- 3. 爲什麼人們在C++中使用`main()`而不是`int main()`?
- 4. __name __ =='__ main__'是否被執行?
- 5. 爲什麼int main(){return main(); }導致stackoverflow而不是尾遞歸?
- 6. Clojure與Python的if __name __ ==「__ main__」是否等價?
- 7. 爲什麼c允許main(),即使它不是int main()或void main()?
- 8. 爲什麼使用def main()?
- 9. 爲什麼'的main(){的putchar(&main);}`輸出`×`
- 10. 在Python多重處理中使用__name __ =='__ main__'的解決方法
- 11. Matlab功能類似於python的__name __ =='__ main__'
- 12. 爲什麼main()函數的argc在ESP + 4而不是ESP + 0?
- 13. 什麼是Spring應用程序的最簡單的main()方法?
- 14. main()遞歸調用main() - gdb backtrace不顯示多個main()幀 - 爲什麼?
- 15. 名單使用率不是在main() -
- 16. NodeJS中main()的用途是什麼?
- 17. 何時調用main而不是調用main?
- 18. 爲什麼main()函數沒有在if'__main__'中定義?
- 19. 爲什麼main不被聲明爲extern
- 20. 爲什麼在調用main()時出錯?
- 21. Main類中的「string [] args」是什麼?
- 22. 爲什麼鏈接器找不到main()?
- 23. 在Python中使用main方法有什麼好處?
- 24. main()返回什麼?
- 25. 爲什麼src/main/config中的hibernate.cfg.xml默認不是?
- 26. 爲什麼SetWindowsHookEx不能在CLI中使用(在main()中代碼而不是dllmain等)?
- 27. 在maven中,main/resources和main/config有什麼區別?
- 28. '__builtins__'是否與main不同?
- 29. 爲什麼vxWorks中沒有main()函數?
- 30. 爲什麼我只在EventDispatcher中接收自定義事件而不在main中?
有人會給你一個詳細的答案,但我拿到這個是「因爲這是Python的,不C」 – StoryTeller
'__main__'已經沒有任何關係,無論是否你定義一個名爲'main()'的函數。 –