簡(jiǎn)單勝過(guò)復(fù)雜
尚有選擇余地時(shí),應(yīng)該選簡(jiǎn)單的方案。Python少有不可為之事,這意味著設(shè)計(jì)出巴洛克風(fēng)格(LCTT譯注:即夸張和不理性)的程序只為解決淺顯的問(wèn)題不僅有可能,甚至很簡(jiǎn)單。
正因如此,編程時(shí)應(yīng)當(dāng)謹(jǐn)記,代碼的簡(jiǎn)單性是最易丟失,卻最難復(fù)得的。
這意味著,在可以選用函數(shù)來(lái)表達(dá)時(shí)不要去引入額外的類;避免使用強(qiáng)力的第三方庫(kù)往往有助于你針對(duì)迫切的問(wèn)題場(chǎng)景設(shè)計(jì)更妥當(dāng)?shù)暮?jiǎn)短函數(shù)。不過(guò)其根本的意圖,旨在讓你減少對(duì)將來(lái)的盤(pán)算,而去著重解決手頭的問(wèn)題。
以簡(jiǎn)單和優(yōu)美作為指導(dǎo)原則的代碼相比那些想要囊括將來(lái)一切變數(shù)的,在日后要容易修改得多。
復(fù)雜勝過(guò)錯(cuò)綜復(fù)雜
把握用詞的精確含義對(duì)于理解這條令人費(fèi)解的原則是至關(guān)重要的。形容某事復(fù)雜complex,是說(shuō)它由許多部分組成,著重組成成分之多;而形容某事錯(cuò)綜復(fù)雜complicated,則是指其包含著差異巨大、難以預(yù)料的行為,強(qiáng)調(diào)的是各組成部分之間的雜亂聯(lián)系。
解決困難問(wèn)題時(shí),往往沒(méi)有可行的簡(jiǎn)單方案。此時(shí),最Python化的策略是“自底向上bottom-up”地構(gòu)建出簡(jiǎn)單的工具,之后將其組合用以解決該問(wèn)題。
這正是對(duì)象組合objectcomposition這類技術(shù)的閃耀之處,它避免了錯(cuò)綜復(fù)雜的繼承體系,轉(zhuǎn)而由獨(dú)立的對(duì)象把一些方法調(diào)用傳遞給別的獨(dú)立對(duì)象。這些對(duì)象都能獨(dú)立地測(cè)試與部署,最終卻可以組成一體。
“自底建造”的另一例即是單分派泛函數(shù)singledispatch的使用,拋棄了錯(cuò)綜復(fù)雜的對(duì)象之后,我們得到是簡(jiǎn)單、幾乎無(wú)行為的對(duì)象以及獨(dú)立的行為。
以上內(nèi)容為大家介紹了簡(jiǎn)單是Python編程的第一要?jiǎng)t,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/