溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

給Python代碼命名的的規(guī)范

發(fā)布時間:2020-08-05 10:10:08 來源:億速云 閱讀:122 作者:清晨 欄目:編程語言

這篇文章給大家分享的是有關(guān)給Python代碼命名的的規(guī)范的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

1、拒絕通用詞

(1)寫代碼的時候,不管是全局變量還是局部變量,都應(yīng)該避免使用 'list'、'dict'、'elements' 等詞作為變量名,它們會使代碼變的難以閱讀、理解。

(2)像 'abs'、'str'、'eval' 等內(nèi)置函數(shù)也應(yīng)該避免使用,防止出現(xiàn)在當前命名空間中被屏蔽的尷尬情況。

(3)一些列的前綴和后綴。雖然在編程中非常常見,但事實上應(yīng)該避免出現(xiàn)在函數(shù)和類名稱中,比如 'object'、'handle'、'do' 等詞,這樣做的原因是它們的含義模糊,摸棱兩可,并且沒有向?qū)嶋H名稱中添加任何信息。

(4)許多包的名稱都應(yīng)該被避免,諸如 'tools'、'utils'、'core' 的名稱很大可能會變成一大堆不相關(guān)的、質(zhì)量非常差的代碼片段,雖然它們在名稱上并沒有本質(zhì)的錯誤,但為了防止問題的出現(xiàn),還是直接將其作為自己自定義包的命名扼殺在萌芽狀態(tài)為好。

2、使用專業(yè)術(shù)語

這個算是 0x00 的延申,拒絕通用詞,相反的使用特定領(lǐng)域特定的專業(yè)術(shù)語,比如下面的代碼:

def calculation(datas):
    for data in datas:
        yield data ** 2

這部分代碼的命名就有些問題,比如函數(shù)名 calculation 是計算的意思,計算分很多種,到底計算什么呢?這樣很不直觀,如果是換成下面這樣:

def squares(numbers):
    for number in numbers
        yield number ** 2

這種的命名就比第一種清晰明了很多。

3、用 'has' 或 'is' 前綴命名 bool 元素

對于保存布爾值的變量,對其命名的時候?qū)?'has' 或 'is' 作為其前綴,可以使它們在代碼中的可讀性更強:

is_succeed = True
has_cache = False

4、避免出現(xiàn)上下文中已存在的名稱

不要在代碼中繼續(xù)使用已經(jīng)存在的名稱,這會在閱讀代碼的時候非常令人疑惑,尤其是在出現(xiàn) bug 進行單步調(diào)試的時候,更是令人抓狂!比如像下面這樣:

import os
def squares(numbers):
    for os in numbers:
        yield os ** 2

上面這個例子中,如果你再使用 os 模塊做其它事情,可能會沒什么效果。還是那句話,內(nèi)置函數(shù)名和標準庫的模塊名都應(yīng)該被避免。

5、集合變量用復(fù)數(shù)形式命名

如果一個元素是集合變量,那么使用復(fù)數(shù)形式是一個很好的辦法,比如像下面這樣:

users = ['Rocky', 'leey']

6、以 key - value 命名字典名

對于字典來說,它保存的是一個映射關(guān)系的數(shù)據(jù),那我們命名就盡量以映射的雙方來命名,也就是 key 含義 - value 含義,比如:一個字典保存的是學(xué)生的成績,那么可以將它命名為 'students_scores':

students_scores = {
    'Rocky': 100,
    'leey': 60
}

7、模塊和包的命名

模塊和包的命名應(yīng)該體現(xiàn)其表達的內(nèi)容,它們的名稱應(yīng)該簡短,應(yīng)該使用小寫字母并且不帶下劃線,同樣還要始終避免與標準庫模塊相同的名稱。

8、代碼風格

Python 官方給出了一種編碼規(guī)范 PEP 8,當然這個只是個標準而已,并沒有強制要求大家都要去遵守,但又好像大多數(shù)人都使用了 PEP 8 編碼風格,使它已經(jīng)成為了事實上的代碼風格標準。

感謝各位的閱讀!關(guān)于給Python代碼命名的的規(guī)范就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI