自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單是Python編程的第一要則

開發(fā) 后端
本文是 Python 之禪特別系列的第二篇,我們將要關(guān)注其中第三與第四條原則:簡單與復(fù)雜。

[[318854]]

 本文是 Python 之禪特別系列的第二篇,我們將要關(guān)注其中第三與第四條原則:簡單與復(fù)雜。

Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y plus rien à retrancher.

It seems that perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away.

“完美并非無可增,而是不可減。”

—Antoine de Saint-Exupéry, Terre des Hommes, 1939

編程時最常有的考量是與復(fù)雜性的斗爭,只想寫出讓旁人無從下手的繁雜代碼,對每個程序員來講都算不上難事。倘若未能觸及代碼的簡繁取舍,那么 《Python 之禪》 就有了一角殘缺。

簡單勝過復(fù)雜Simple is better than complex

尚有選擇余地時,應(yīng)該選簡單的方案。Python 少有不可為之事,這意味著設(shè)計出巴洛克風(fēng)格(LCTT 譯注:即夸張和不理性)的程序只為解決淺顯的問題不僅有可能,甚至很簡單。

正因如此,編程時應(yīng)當謹記,代碼的簡單性是最易丟失,卻最難復(fù)得的。

這意味著,在可以選用函數(shù)來表達時不要去引入額外的類;避免使用強力的第三方庫往往有助于你針對迫切的問題場景設(shè)計更妥當?shù)暮喍毯瘮?shù)。不過其根本的意圖,旨在讓你減少對將來的盤算,而去著重解決手頭的問題。

以簡單和優(yōu)美作為指導(dǎo)原則的代碼相比那些想要囊括將來一切變數(shù)的,在日后要容易修改得多。

復(fù)雜勝過錯綜復(fù)雜Complex is better than complicated

把握用詞的精確含義對于理解這條令人費解的原則是至關(guān)重要的。形容某事復(fù)雜complex,是說它由許多部分組成,著重組成成分之多;而形容某事錯綜復(fù)雜complicated,則是指其包含著差異巨大、難以預(yù)料的行為,強調(diào)的是各組成部分之間的雜亂聯(lián)系。

解決困難問題時,往往沒有可行的簡單方案。此時,最 Python 化的策略是“自底向上bottom-up”地構(gòu)建出簡單的工具,之后將其組合用以解決該問題。

這正是對象組合object composition這類技術(shù)的閃耀之處,它避免了錯綜復(fù)雜的繼承體系,轉(zhuǎn)而由獨立的對象把一些方法調(diào)用傳遞給別的獨立對象。這些對象都能獨立地測試與部署,最終卻可以組成一體。

“自底建造” 的另一例即是單分派泛函數(shù)singledispatch的使用,拋棄了錯綜復(fù)雜的對象之后,我們得到是簡單、幾乎無行為的對象以及獨立的行為。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2018-09-11 12:37:38

云安全云計算云終端

2016-03-31 14:32:45

2012-12-13 16:32:41

通信網(wǎng)絡(luò)移動網(wǎng)絡(luò)

2012-12-11 09:23:43

服務(wù)提供商IT薪水調(diào)查云計算

2020-12-04 09:11:45

Python加密文件爆破字典

2021-10-20 18:44:43

編程對象JavaScript

2015-12-30 09:25:47

編程故事printf

2017-04-07 10:45:43

編程語言

2017-04-07 16:49:00

語言程序編程

2019-07-19 09:28:24

Python編程語言Java

2012-09-04 11:20:31

2020-06-09 14:30:17

編程命名代碼

2015-05-25 15:06:28

JavaScript函數(shù)式編程

2011-09-01 16:06:42

2019-02-11 08:32:22

編程語言Go

2013-07-18 16:40:12

App Store榜單

2021-10-10 12:45:13

編程語言開發(fā)

2020-11-30 13:16:29

Python編程語言

2021-09-13 22:26:16

編程語言CPython

2017-11-23 08:30:26

編程Python擲骰子游戲
點贊
收藏

51CTO技術(shù)棧公眾號