當您編寫一些自足的腳本時,使用if __name__ == '__main__'
作爲編寫測試的地方是不是一個好主意?如果使用__name__ =='__main__':用於測試
8
A
回答
4
測試邏輯和測試不應該是「生產」(生產可能意味着您正在使用,發佈到客戶端等)代碼的一部分。因此,在您的腳本中將它們放置在任何地方是個不錯的主意。
理想情況下,將它們放在單獨的文件中。
0
我想不是,其實我看到很多python腳本(大部分是另一個應用程序的插件)。
3
最佳做法是將測試放在使用unittest模塊的單獨單元中。這種分離可以讓你保持主代碼的清潔(不需要大量的測試幫助函數),並鼓勵你編寫好的綜合測試,因爲你不會被混淆主代碼所抑制。
5
這實際上取決於您的代碼和腳本的目的。對於大型複雜的項目,您肯定必須將所有測試放在一個單獨的位置。
但是,當處理一些小事情時,它可能是一個很好的解決方案,可以與代碼一起進行測試 - 它是doctest
(它是一個很棒的Python模塊,允許您在文檔字符串中編寫測試)的主要思想。在這種情況下,您if __name__ == '__main__'
將是這樣的:
if __name__ == "__main__":
import doctest
doctest.testmod()
我覺得很漂亮和乾淨。
相關問題
- 1. 如果__name__ ==「__main__」蟒蛇
- 2. 如果__name__ ==「__main__」函數調用
- 3. 如何測試或模擬「如果__name__ ==‘__main__’」內容
- 4. Python的設計:代碼後,「如果__name__ == __main__」測試
- 5. if __name__ =='__main__'
- 6. 避免如果__name__ ==「__main__」在Python子類使用功能從父
- 7. 範圍if __name__ == __main__
- 8. 如何使__name__ == '__main__' 運行模塊
- 9. node.js相當於python的if __name__ =='__main__'
- 10. 如何在使用IronPython託管時將__name__設置爲'__main__'?
- 11. Apache上的web.py無法運行代碼,如果__name__ ==「__main__」:
- 12. 它爲什麼這樣做?如果 - __name__ == '__main__'
- 13. python3.x多處理循環沒有「如果__name__ ==‘__main__’:」
- 14. Python:導入並初始化Argparse如果__name__ =='__main__'?
- 15. enigma使用python-multiprocessing與if相關if __name__ =='__main__'
- 16. 運行從另一個Python腳本使用IF __name__ == 「__main__」 語句
- 17. if __name__ ==「__main__」沒有額外的縮進:
- 18. 混淆兩個關鍵字:__name__與__main__
- 19. 從其他文件調用函數if __name__ ==「__main__」:
- 20. 當你用cronjob運行一個Python腳本時,是__name__'__main__'嗎?
- 21. 如果使用測試
- 22. `如果__name__ =='__main __'`等效於Ruby
- 23. 在python中,我如何獲得與__name__ =='__main__'相同的行爲:
- 24. 用於測試使用RSpec
- 25. 'if __name__ =='後面的任何內容__main__「:'不執行
- 26. 是否存在pythonic的「if __name__ ==」__main__「:main()」的R等價物?
- 27. 在Emacs的Python:__name__ =='__main__',但不知何故
- 28. 在執行之前在模塊中設置__name__爲'__main__'
- 29. 在Python中調用getLogger之前,是否需要顯式檢查__name__ ==「__main__」?
- 30. 測試,如果不使用變量
爲什麼???????????? –
請證明。 –
我是一名新程序員,我發現這個問題沒有信息 – RodericDay