Effective-用Pythonic方式來思考

  1. 確定所用的Python版本
    Python2與3代碼是不兼容的账嚎。目前Python2的功能開發(fā)已經(jīng)停止愁溜,只會(huì)修復(fù)bug罐栈,而Python3不是足夠的穩(wěn)定。Python2適配到Python3的工具有2to3珠十、six等料扰。
  2. 遵循PEP8風(fēng)格指南
    《Python Enhancement Proposal #8》簡稱PEP8,針對python代碼格式編訂的風(fēng)格指南焙蹭。
空白:
  * 使用space來表示縮進(jìn)晒杈,而不是tab
  * 每行字符數(shù)不應(yīng)超過79個(gè)字符
  * 對于占據(jù)多行的長表達(dá)式,除了首行外壳嚎,其他行都應(yīng)再縮進(jìn)4個(gè)空格
  * 文件中的函數(shù)與類之間應(yīng)該空兩行
  * 同一個(gè)類中桐智,方法間應(yīng)空一個(gè)空行
  * 在使用下標(biāo)來獲取列表元素、調(diào)用函數(shù)或給關(guān)鍵字參數(shù)賦值的時(shí)候烟馅,不要在旁加空格
命名:
  * 函數(shù)说庭、變量、屬性應(yīng)該用小寫字母來拼寫郑趁,單詞間用下劃線連接
  * 受保護(hù)的實(shí)例屬性刊驴,應(yīng)該用單個(gè)下劃線開頭
  * 私有實(shí)例,應(yīng)該用兩個(gè)下劃線開頭
  * 類與異常寡润,每個(gè)單詞首字母大寫
  * 模塊級(jí)別的常量捆憎,所有單詞大寫,單詞間用下劃線連接
  * 類中的實(shí)例方法梭纹,首個(gè)參數(shù)命名為self躲惰,表示該對象自身
  * 類方法的首個(gè)參數(shù)命名為cls,表示該類自身
表達(dá)式和語句:
  * 采用內(nèi)聯(lián)形式的否定詞变抽,而不是把否定詞放在整個(gè)表達(dá)式前础拨。例如:if a is not b 而不是 if not a is b
  * 不要通過檢測長度的辦法來判斷列表是否為[]或者空值,而是if not somelist
  * 不要編寫單杠的if語句绍载、for循環(huán)诡宗、while循環(huán)以及except復(fù)合語句,而是多行書寫击儡,閱讀更清晰
  * import 語句應(yīng)該總是放在文件開頭
  * 引入模塊的時(shí)候塔沃,應(yīng)該使用絕對名稱,而不是根據(jù)當(dāng)前模塊的路徑來使用相對的名稱
  * 文件中import語句應(yīng)該分為三個(gè)部分阳谍,分別為標(biāo)準(zhǔn)庫蛀柴、第三方模塊和自用模塊螃概。每個(gè)部分,按模塊名稱的字母順序來排列
  1. 了解bytes鸽疾、str與unicode的區(qū)別
    python3的兩種字符序列類型:bytes和str谅年。bytes為原始的8位字節(jié),str則包含unicode字符肮韧。
    python2有兩種字符序列類型:str和unicode,str包含原始8位字節(jié)旺订。
    關(guān)于這個(gè)請關(guān)注我的另一篇blog--《編碼問題以及其在Python2與3的差異》
    想把unicode轉(zhuǎn)為二進(jìn)制數(shù)據(jù)弄企,使用encode方法,相反則使用decode方法
  2. 用輔助函數(shù)來取代復(fù)雜的表達(dá)式
    表達(dá)式復(fù)雜了区拳,就拆分為小塊
  3. 了解切割序列的方法
  4. 在單次切片操作內(nèi)拘领,不要同時(shí)制定start、end和stride樱调。
    list[start:end:stride]
  5. 用列表推導(dǎo)來取代map和filter
    [x+1 for x in list]
  6. 不要使用含有兩個(gè)以上表達(dá)式的列表推導(dǎo)
  7. 用生成器表達(dá)式來改寫數(shù)據(jù)量較大的列表推導(dǎo)
  8. 盡量用enumerate取代range
    enumerate可以把迭代器包裝為生成器约素,生成器產(chǎn)生一對值,前者為循環(huán)下標(biāo)笆凌,后者表示對應(yīng)的元素
  9. 用zip函數(shù)同時(shí)遍歷兩個(gè)迭代器
    可以把兩個(gè)及以上的迭代器封裝為生成器圣猎,如果不等長,則以較短的迭代器為準(zhǔn)乞而。
    itertools的zip_longest函數(shù)可以平行遍歷多個(gè)迭代器送悔。
  10. 不要在for和while循環(huán)后寫else
    因?yàn)檠h(huán)后的else語句塊在循環(huán)結(jié)束后都會(huì)執(zhí)行,跟正常邏輯有點(diǎn)不一樣爪模。
  11. 合理利用try/except/else/finally結(jié)構(gòu)中代碼塊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末欠啤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屋灌,更是在濱河造成了極大的恐慌洁段,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件共郭,死亡現(xiàn)場離奇詭異祠丝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)落塑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門纽疟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人憾赁,你說我怎么就攤上這事污朽。” “怎么了龙考?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蟆肆,是天一觀的道長矾睦。 經(jīng)常有香客問我,道長炎功,這世上最難降的妖魔是什么枚冗? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蛇损,結(jié)果婚禮上赁温,老公的妹妹穿的比我還像新娘。我一直安慰自己淤齐,他們只是感情好股囊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著更啄,像睡著了一般稚疹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祭务,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天内狗,我揣著相機(jī)與錄音,去河邊找鬼义锥。 笑死柳沙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拌倍。 我是一名探鬼主播偎行,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贰拿!你這毒婦竟也來了蛤袒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤膨更,失蹤者是張志新(化名)和其女友劉穎妙真,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荚守,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡珍德,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矗漾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锈候。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖敞贡,靈堂內(nèi)的尸體忽然破棺而出泵琳,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布获列,位于F島的核電站谷市,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏击孩。R本人自食惡果不足惜迫悠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巩梢。 院中可真熱鬧创泄,春花似錦、人聲如沸括蝠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽又跛。三九已至,卻和暖如春若治,著一層夾襖步出監(jiān)牢的瞬間慨蓝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工端幼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留礼烈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓婆跑,卻偏偏與公主長得像此熬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子滑进,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • python學(xué)習(xí)筆記 聲明:學(xué)習(xí)筆記主要是根據(jù)廖雪峰官方網(wǎng)站python學(xué)習(xí)學(xué)習(xí)的犀忱,另外根據(jù)自己平時(shí)的積累進(jìn)行修正...
    renyangfar閱讀 3,044評(píng)論 0 10
  • 兩本不錯(cuò)的書: 《Python參考手冊》:對Python各個(gè)標(biāo)準(zhǔn)模塊,特性介紹的比較詳細(xì)扶关。 《Python核心編程...
    靜熙老師哈哈哈閱讀 3,360評(píng)論 0 80
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,579評(píng)論 1 118
  • 過客 吳見知 在表姐國慶節(jié)那天給我送來一條寵物狗時(shí)阴汇,我很驚奇也很高興。從此我也有條很可愛的寵物狗了节槐! 表姐把狗一送...
    吳見知閱讀 436評(píng)論 16 6
  • 禪宗美學(xué)告訴我們铜异,通過簡化能夠展示事物之美哥倔,詮釋有力信息。 ——幻燈片演示專家 Garr Reynolds 1.極...
    好PPT閱讀 2,720評(píng)論 5 128