警告!你的Python代码命名太烂了,命令你熟读本篇迷你命名指南!
拒絕通用詞
1、寫代碼的時候,不管是全局變量還是局部變量,都應該避免使用 ‘list’、‘dict’、‘elements’ 等詞作為變量名,它們會使代碼變的難以閱讀、理解。
2、像 ‘abs’、‘str’、‘eval’ 等內置函數也應該避免使用,防止出現在當前命名空間中被屏蔽的尷尬情況。
3、一些列的前綴和后綴。雖然在編程中非常常見,但事實上應該避免出現在函數和類名稱中,比如 ‘object’、‘handle’、‘do’ 等詞,這樣做的原因是它們的含義模糊,摸棱兩可,并且沒有向實際名稱中添加任何信息。
4、許多包的名稱都應該被避免,諸如 ‘tools’、‘utils’、‘core’ 的名稱很大可能會變成一大堆不相關的、質量非常差的代碼片段,雖然它們在名稱上并沒有本質的錯誤,但為了防止問題的出現,還是直接將其作為自己自定義包的命名扼殺在萌芽狀態為好。
1 使用專業術語
這個算是 0x00 的延申,拒絕通用詞,相反的使用特定領域特定的專業術語,比如下面的代碼:
def calculation(datas):for data in datas:yield data ** 2這部分代碼的命名就有些問題,比如函數名 calculation 是計算的意思,計算分很多種,到底計算什么呢?這樣很不直觀,如果是換成下面這樣:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def squares(numbers):for number in numbersyield number ** 2這種的命名就比第一種清晰明了很多。
2 用 ‘has’ 或 ‘is’ 前綴命名 bool 元素
對于保存布爾值的變量,對其命名的時候將 ‘has’ 或 ‘is’ 作為其前綴,可以使它們在代碼中的可讀性更強:
is_succeed = True has_cache = False3 避免出現上下文中已存在的名稱
不要在代碼中繼續使用已經存在的名稱,這會在閱讀代碼的時候非常令人疑惑,尤其是在出現 bug 進行單步調試的時候,更是令人抓狂!比如像下面這樣:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import osdef squares(numbers):for os in numbers:yield os ** 2上面這個例子中,如果你再使用 os 模塊做其它事情,可能會沒什么效果。還是那句話,內置函數名和標準庫的模塊名都應該被避免。
4 集合變量用復數形式命名
如果一個元素是集合變量,那么使用復數形式是一個很好的辦法,比如像下面這樣:
users = ['Rocky', 'leey']5 以 key - value 命名字典名
對于字典來說,它保存的是一個映射關系的數據,那我們命名就盡量以映射的雙方來命名,也就是 key 含義 - value 含義,比如:一個字典保存的是學生的成績,那么可以將它命名為 ‘students_scores’:
students_scores = {'Rocky': 100,'leey': 60 }6 模塊和包的命名
模塊和包的命名應該體現其表達的內容,它們的名稱應該簡短,應該使用小寫字母并且不帶下劃線,同樣還要始終避免與標準庫模塊相同的名稱。
7 代碼風格
Python 官方給出了一種編碼規范 PEP 8,當然這個只是個標準而已,并沒有強制要求大家都要去遵守,但又好像大多數人都使用了 PEP 8 編碼風格,使它已經成為了事實上的代碼風格標準。
總結
以上是生活随笔為你收集整理的警告!你的Python代码命名太烂了,命令你熟读本篇迷你命名指南!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 函数式编程指北,不只是面向
- 下一篇: Python编程核心内容 ---- Fu