是使用continue
在Python認爲是不好的做法?這似乎是停止功能的/ etc中期執行是一個普遍「差」的方式來構造一個程序,如sys.exit()
在錯誤的情況下,或goto
。「繼續」不好的做法?
回答
使用流量控制是一個有爭議的問題。思想
一派認爲,他們混淆代碼,通過隱藏流量控制讀者會認爲 - 是線性的。
另一派認爲它們是合理的,如果替代是複雜的邏輯(如其他標誌和更復雜的循環條件)。
最好的辦法是看你的代碼,並作出決定;會使用類似的東西繼續隱藏流量控制?你的代碼可以沒有它乾淨地表達?
我的看法是這樣的:如果你沒有令人信服的理由不這樣做,我建議你避免繼續和它的同胞。
'參見作爲例子,在需要提前退出循環想到的情況。如果沒有控制流程中斷,您必須在循環中使用標誌變量,這可能會使循環複雜化。「我不能想到任何情況下,除了這樣的實例外,我都會使用break。同樣,除非我想結束當前的循環迭代,然後開始下一步,否則我無法想象會繼續使用任何地方。這些情況正是爲什麼繼續存在和破裂的原因。 – Matt
當然,但他們可以(並且)被濫用;我看到代碼運行一個無限循環,循環控制在主體中,由流控制中斷提供。我還看到了一個例子,其中一個循環的邏輯很容易用循環內的if語句表示,依賴於一個負面測試並繼續。 – RonaldBarzell
是的,當然他們可以被濫用,幾乎所有的東西都可以被濫用。這並不意味着他們應該完全避免(這是你的第一句話這樣說:'一般說來,任何類型的代碼,可能導致流量控制「中斷」被認爲是不好practice') – Matt
繼續使用Python中的個人而言,是好的。如果你把它放在Python中的if/else語句類型條件中,繼續將會工作。
結構化編程的基礎是具有明確定義的入口和出口點到一個方法 - 的每一個理想。但是,這並不是一條硬性規定,而且有很多情況下適用於多個退出點。我會說看看代碼,考慮是否有一種不同的方法可以在沒有繼續優化的情況下執行,如果不是,使用「繼續」將是正確的方法。
- 1. 繼承和良好做法
- 2. 連續PreparedStatement的好的做法
- 3. 良好的做法或不好的做法
- 4. Bundle Node.js後端 - 良好的做法或不好的做法?
- 5. 好的做法或不好的做法更新實例變量
- 6. 這是不好的做法?
- 7. 這是不好的做法?
- 8. 繼承的做法
- 9. 正確的方法來做iOS5中的「有條件的繼續」
- 10. Cloudera的內存不足,無法繼續
- 11. 非法繼續:Javascript
- 12. sem_wait無法繼續
- 13. 做點什麼,回報或繼續,PHP的一行語法
- 14. 不使用if(file_exists)不好的做法?
- 15. 有沒有更好的方法? While循環並繼續
- 16. 使用Interface +抽象類的繼承設計。良好的做法?
- 17. Perl不會繼續
- 18. 不會繼續ACTION_DOWN
- 19. 好的做法或不好的做法強制整個網站HTTPS?
- 20. Java中的標籤 - 不好的做法?
- 21. 帶「#」的href,這是不好的做法?
- 22. CakePHP Auth內的routes.php,不好的做法?
- 23. 更好的方式來繼續而不是重複
- 24. 消除不會使用的繼承功能是一種好的做法嗎?
- 25. 不好的做法,在域中立即繼承相同的字母?
- 26. 數據傳輸對象中的繼承是一種不好的做法嗎?
- 27. 重複代碼,不好的做法
- 28. Python口音墳墓不好的做法?
- 29. 它是不好的做法,在DTO
- 30. 嵌入式風格不好的做法?
不,這是完全正常的。 – Keith
也http://stackoverflow.com/questions/216359/break-statements-in-the-real-world/216375#216375 – paxdiablo