成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何寫出清晰又優雅的Python代碼?我們給你這26條建議

開發 后端
在Python中,空白(whitespace)在語法上相當重要。Python程序員對空白字符的用法尤其在意,因為它們會影響代碼的清晰程度。在這方面,大家應該遵循以下幾條建議。

[[396918]]

本文轉載自微信公眾號「大數據DT」,作者布雷特·斯拉特金。轉載本文請聯系大數據DT公眾號。 

PEP 8非常詳細地描述了如何編寫清晰的Python代碼,而且會隨著Python語言的發展持續更新。大家應該把完整指南閱讀一遍:

https://www.python.org/dev/peps/pep-0008

筆者認為,下面這幾條規則是絕對應該遵循的。

01 與空白有關的建議

(9條 / 26條)

在Python中,空白(whitespace)在語法上相當重要。Python程序員對空白字符的用法尤其在意,因為它們會影響代碼的清晰程度。在這方面,大家應該遵循以下幾條建議。

用空格(space)表示縮進,而不要用制表符(tab)。

和語法相關的每一層縮進都用4個空格表示。

每行不超過79個字符。

對于占據多行的長表達式來說,除了首行之外的其余各行都應該在通常的縮進級別之上再加4個空格。

在同一份文件中,函數與類之間用兩個空行隔開。

在同一個類中,方法與方法之間用一個空行隔開。

使用字典時,鍵與冒號之間不加空格,寫在同一行的冒號和值之間應該加一個空格。

給變量賦值時,賦值符號的左邊和右邊各加一個空格,并且只加一個空格就好。

給變量的類型做注解(annotation)時,不要把變量名和冒號隔開,但在類型信息前應該有一個空格。

02 與命名有關的建議

(7條 / 26條)

PEP 8建議采用不同的方式來給Python代碼中的各個部分命名,這樣在閱讀代碼時,就可以根據這些名稱看出它們在Python語言中的角色。遵循以下與命名相關的建議。

函數、變量及屬性用小寫字母來拼寫,各單詞之間用下劃線相連,例如:lowercase_underscore。

受保護的實例屬性,用一個下劃線開頭,例如:_leading_underscore。

私有的實例屬性,用兩個下劃線開頭,例如:__double_leading_underscore。

類(包括異常)命名時,每個單詞的首字母均大寫,例如:CapitalizedWord。

模塊級別的常量,所有字母都大寫,各單詞之間用下劃線相連,例如:ALL_CAPS。

類中的實例方法,應該把第一個參數命名為self,用來表示該對象本身。

類方法的第一個參數,應該命名為cls,用來表示這個類本身。

03 與表達式和語句有關的建議

(6條 / 26條)

The Zen of Python中提到:“每件事都應該有簡單的做法,而且最好只有一種。”PEP 8就試著運用這個理念,來規范表達式和語句的寫法。

采用行內否定,即把否定詞直接寫在要否定的內容前面,而不要放在整個表達式的前面,例如應該寫if a is not b,而不是if not a is b。

不要通過長度判斷容器或序列是不是空的,例如不要通過if len(somelist) == 0判斷somelist是否為[]或''等空值,而是應該采用if not somelist這樣的寫法來判斷,因為Python會把空值自動評估為False。

如果要判斷容器或序列里面有沒有內容(比如要判斷somelist是否為[1]或'hi'這樣非空的值),也不應該通過長度來判斷,而是應該采用if somelist語句,因為Python會把非空的值自動判定為True。

不要把if語句、for循環、while循環及except復合語句擠在一行。應該把這些語句分成多行來寫,這樣更加清晰。

如果表達式一行寫不下,可以用括號將其括起來,而且要適當地添加換行與縮進以便于閱讀。

多行的表達式,應該用括號括起來,而不要用\符號續行。

04 與引入有關的建議

(4條 / 26條)

PEP 8對于怎樣在代碼中引入并使用模塊,給出了下面幾條建議。

import語句(含from x import y)總是應該放在文件開頭。

引入模塊時,總是應該使用絕對名稱,而不應該根據當前模塊路徑來使用相對名稱。例如,要引入bar包中的foo模塊,應該完整地寫出from bar import foo,即便當前路徑為bar包里,也不應該簡寫為import foo。

如果一定要用相對名稱來編寫import語句,那就應該明確地寫成:from . import foo。

文件中的import語句應該按順序劃分成三個部分:首先引入標準庫里的模塊,然后引入第三方模塊,最后引入自己的模塊。屬于同一個部分的import語句按字母順序排列。

提示:Pylint是一款流行的Python源碼靜態分析工具。它可以自動檢查受測代碼是否符合PEP 8風格指南,而且還能找出Python程序里的許多種常見錯誤。很多IDE(集合成開發環境)與編輯器,都包含這樣的linting工具或者支持類似的插件。

https://www.pylint.org/

要點

編寫Python代碼時,總是應該遵循PEP 8風格指南。

與廣大Python開發者采用同一套代碼風格,可以使項目更利于多人協作。

采用一致的風格編寫代碼,代碼的后續修改更容易。

關于作者:布雷特·斯拉特金(Brett Slatkin),Google首席軟件工程師,他是Google Surveys的聯合技術創始人,也是PubSubHubbub協議的共同創造者之一。此外,Slatkin還發布了Google的第一個云計算產品——App Engine。早在15年前,Slatkin就開始在工作中使用Python管理Google大量的服務器群。他擁有紐約哥倫比亞大學計算機工程專業學士學位。

本文摘編自《Effective Python:編寫高質量Python代碼的90個有效方法》(原書第2版),經出版方授權發布。

責任編輯:武曉燕 來源: 大數據DT
相關推薦

2021-01-04 07:57:07

C++工具代碼

2019-09-20 15:47:24

代碼JavaScript副作用

2022-03-11 12:14:43

CSS代碼前端

2020-05-14 09:15:52

設計模式SOLID 原則JS

2021-12-07 08:16:34

React 前端 組件

2024-12-04 15:10:21

2024-03-28 14:29:46

JavaScript編程

2020-07-15 08:17:16

代碼

2020-12-19 10:45:08

Python代碼開發

2020-06-28 09:20:33

代碼開發Go

2019-12-24 10:40:53

Java代碼編程

2017-08-10 14:55:33

前端JavaScript 函數

2020-05-08 14:45:00

JS代碼變量

2020-05-11 15:23:58

CQRS代碼命令

2013-06-07 14:00:23

代碼維護

2021-09-01 08:55:20

JavaScript代碼開發

2021-11-30 10:20:24

JavaScript代碼前端

2018-12-27 09:00:00

Java代碼編程語言

2022-02-08 19:33:13

技巧代碼格式

2022-02-17 10:05:21

CSS代碼前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美亚洲国产精品 | 久久久久一区 | 中文字幕日韩一区 | www.日日夜夜 | 国产97久久| 日日碰狠狠躁久久躁婷婷 | 国产精品久久国产精品 | 欧美v在线| 一级黄色毛片 | 青青久久| 国产男女视频 | 国产高清在线 | 日韩精品在线看 | 亚洲欧美日韩网站 | 欧美毛片免费观看 | 国产成人精品午夜视频免费 | 久久伊人青青草 | 久久一区二区三区免费 | 国产免费一区 | 97高清国语自产拍 | 欧美日韩亚洲一区 | 欧美综合在线观看 | 中国一级大黄大片 | 成人做爰69片免费观看 | 久久久久久成人 | 国产一区视频在线 | 欧美国产免费 | 国产小视频在线 | 玖玖玖在线 | 欧美日韩国产一区二区三区 | 免费看国产一级特黄aaaa大片 | 久久精品视频亚洲 | 99国产精品99久久久久久 | 99精品久久 | 国产精品久久久久无码av | 一级片免费在线观看 | 欧美精三区欧美精三区 | 99精品免费在线观看 | 国产精品免费一区二区三区四区 | 欧美日韩精品一区二区 | 成人在线a |