- Python編程從新手到高手
- (美)賈森·C.麥克唐納
- 933字
- 2025-08-07 17:53:07
1.9 對“明顯的方式”的追求
Python的口號“只有一種方式”,一開始可能會讓人感到困惑。解決任何一個問題都有很多種可能的方法,Python愛好者們是對自己的想法太著迷了嗎?
幸運的是,不是這樣的。這個口號意味著更加鼓舞人心的東西,這也是每一個Python開發者都應該理解的。
一些觀點來自Python之禪,其中包括如下兩個相當神秘的句子。
應該有一種(且最好只有一種)明顯的方式來做到這一點。
雖然這并不容易,畢竟你不是那位荷蘭人。
Tim Peters當然是在調侃Python的創造者Guido van Rossum——他是荷蘭人。作為Python的創造者,Guido可以很容易地找到解決Python問題的“明顯的方式”,尤其是在早期。
“明顯的方式”(obvious way)是Python的一個術語,用于描述“最佳解決方案”——良好的實踐、干凈的風格和合理的效率的結合,使得代碼即使對于學習Python的新手也是易于理解的。
問題的細節通常會影響這種“明顯的方式”:一種情況可能需要循環,另一種可能需要遞歸,還有一種可能需要列表推導式。與通常意義上的“明顯”相反,解決方案通常并不簡單。最佳解決方案只有在你知道它之后才會顯而易見,而怎么到達這一點是最棘手的。
然而,對“明顯的方式”的追求是Python社區的一個定義性特征,它對本書產生了深遠的影響。書中的很多見解都是在我和我的Python愛好者同行之間進行的激烈辯論中產生的。因此,我從那些常常與我爭論技術細節的同行中挑選出了我的技術審校團隊成員,而且他們經常彼此對立。
任何最終被認為是解決問題的“正確方式”的方案通常都是因為其技術優勢才被接受的,而不是因為Python開發者之間的一些類似的偏見,這些開發者是我曾經有幸合作的最嚴格的人。這種邏輯的方法溢出到了我們每一次的對話中(這導致一些非常驚人和具有啟發性的學術辯論)。
新的情況會不斷出現。在任何Python開發者的職業生涯中,編碼永遠不會變得真正“簡單”。每個項目中都會出現需要仔細考慮的情況,而且通常還會有爭論。開發者必須嘗試以對他們來說最明顯的方式解決問題,然后將解決方案提交給同行進行評審。
在我看來,本書中的方法在很多情況下都是最明顯的,大多數得到了我的同行們的支持,但我敢肯定的是,我在Python方面差了Guido van Rossum很多。如果你發現自己在Python社區中爭論技術,那么請不要把本書舉在任何人的面前,作為你的解決方案最好的證據!找到明顯的解決方案的技能是不可教的,只能通過實踐來學習。
- Learning Scala Programming
- C語言程序設計實踐教程(第2版)
- 在最好的年紀學Python:小學生趣味編程
- Python for Secret Agents:Volume II
- Getting Started with PowerShell
- Easy Web Development with WaveMaker
- Reactive Programming With Java 9
- ADI DSP應用技術集錦
- 琢石成器:Windows環境下32位匯編語言程序設計
- Learn React with TypeScript 3
- KnockoutJS Starter
- Scala編程實戰(原書第2版)
- Mastering openFrameworks:Creative Coding Demystified
- 新一代SDN:VMware NSX 網絡原理與實踐
- MySQL入門很輕松(微課超值版)