一文輕松掌握python語言命名規(guī)范規(guī)則
和C/C++、Java等語言一樣,python在命名上也有一套約定俗成的規(guī)則,符合規(guī)范的命名可以讓程序的可讀性大大增加,從而使得代碼的邏輯性增強,易于自己和其他協(xié)作者在以后的拓展中理解代碼的意義,從而提高編寫代碼的效率。
我們在平常編寫程序的時候需要注意以下幾點:
一、python變量名命名的硬性規(guī)則
1.1. 變量名大小寫敏感
python變量名區(qū)分大小寫,也就是Student和student在python語言中代表兩個不同的名字。
1.2. python的變量名字中可以包含英文、下劃線、數(shù)字,但是不能以數(shù)字開頭。
也就是說,student_id、student1、student_1、student、_student、_等都是合理的命名,但是1student就是非法的命名。
二、不同風(fēng)格命名的變量代表不同的類型
與java中命名習(xí)慣使用駝峰命名法不同(有可能發(fā)明java的程序猿大哥不但喜歡喝爪哇島的咖啡,也喜歡騎爪哇島上的駱駝,哈哈),python變量命名一般采用蛇形命名法(畢竟python的本意就是大蟒蛇),也就是如果變量名由兩個單詞組成,那么使用下劃線來連接這兩個單詞,比如student_id。當然,我們也會在python中看到類似駝峰命名法的變量名,對于專業(yè)的程序猿來說,這些命名都不是隨便寫的,他們符合一定的標準,下面總結(jié)以下:
2.1.模塊(module)命名風(fēng)格
模塊盡量使用小寫命名,首字母保持小寫,盡量不要用下劃線(除非多個單詞,且數(shù)量不多的情況)
# 正確的模塊名 import decoder import html_parser # 不推薦的模塊名 import Decoder
2.2.類(class)的命名
類名使用駝峰(CamelCase)命名風(fēng)格,首字母大寫,私有類可用一個下劃線開頭
class Farm(): pass class AnimalFarm(Farm): pass class _PrivateFarm(Farm): pass
2.3.函數(shù)(function)的命名
函數(shù)名一律小寫,如有多個單詞,用下劃線隔開。
def run(): pass def run_with_env(): pass
2.4.變量(variable)的命名
變量名盡量小寫, 如有多個單詞,用下劃線隔開
if __name__ == '__main__': count = 0 school_name = ''
2.5.常量(constant)的命名
如果我們想用一個符號來代表常量(值是不變的量,比如光速、π等),采用全部大寫,如有多個單詞,使用下劃線隔開。
MAX_CLIENT = 100 MAX_CONNECTION = 1000 CONNECTION_TIMEOUT = 600
三、“下劃線”開頭的特殊命名
很多時候,我們在python的源代碼中會看到下劃線開頭的變量,初學(xué)者看到這些變量會感覺怪怪的。確實,這些“_”開頭的命名是具有特殊含義的:
3.1.單下劃線開頭的命名
- 如果類變量以單下劃線“_”開頭,代表這個變量不能被直接訪問,類似于C++中的protected型,這樣的變量也不能被 import
- module_name導(dǎo)入。
- 使用單下劃線(one underline)開頭的方法,則表示該方法不是AP的一部分,不要直接訪問(雖然語法上訪問也沒有什么問題)。
3.2.雙下劃線開頭的命名
- 以雙下劃線(two underlines)開頭的類變量,表示為類的私有成員,不能被導(dǎo)入和其他類變量訪問。
- 對于類中的方法,使用雙下劃線開頭開頭表示子類不能覆寫該方法。除非你真的知道你在干什么,否則不要使用這種方式。
3.3.雙下劃線開頭并且雙下劃線結(jié)尾的命名
魔法方法:以雙下劃線開頭和雙下劃線結(jié)尾的變量是Python的專用標識,有其特殊的身份。我們一般稱這樣的方法為“魔法方法”(magic method)。
- 魔法方法是python內(nèi)置方法,不需要主動調(diào)用,存在的目的是為了給python的解釋器進行調(diào)用,幾乎每個魔法方法都有一個對應(yīng)的內(nèi)置函數(shù),或者運算符,當我們對這個對象使用這些函數(shù)或者運算符時就會調(diào)用類中的對應(yīng)魔法方法,可以理解為重寫這些python的內(nèi)置函數(shù)。
- 當你想讓自己定義的對象也可以像Python內(nèi)置的對象一樣使用內(nèi)置的一些函數(shù)或操作符(比如len、add、+、、==等)時,你可以定義該類方法。
- 當然還有些屬性只在末尾加了但下劃線這僅僅是為了避免我們起的一些名字和Python保留關(guān)鍵字沖突,沒有特殊含義。
- 下劃線變量(方法)的使用,往往和面向?qū)ο缶幊讨蓄悾╟lass)的設(shè)計相關(guān),更多更深入的知識,可以參考 這篇博客。當然,如果需要了解更多python編程規(guī)范,PEP8(Python Enhancement Proposal8)的官方文檔是最佳的參考資料。
到此這篇關(guān)于一文輕松掌握python語言命名規(guī)范規(guī)則的文章就介紹到這了,更多相關(guān)python命名規(guī)范 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django利用LogEntry生成歷史操作實戰(zhàn)記錄
LogEntry是在后臺開發(fā)中經(jīng)常用到的模塊,它在admin是默認開啟的。文中給大家介紹了在admin頁面上查看操作日志的方法及實戰(zhàn)代碼,感興趣的朋友跟隨小編一起看看吧2021-12-12Python和OpenCV進行多尺度模板匹配實現(xiàn)
本文將實現(xiàn)如何將標準模板匹配擴展到多尺度,使其可以處理模板和輸入圖像大小不同的匹配。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09python并發(fā)執(zhí)行request請求的示例
這篇文章主要介紹了python并發(fā)執(zhí)行request請求,我將為我們展示使用concurrent.futures.ThreadPoolExecutor和requests庫并發(fā)執(zhí)行HTTP請求的示例,需要的朋友可以參考下2024-06-06python爬蟲爬取筆趣網(wǎng)小說網(wǎng)站過程圖解
這篇文章主要介紹了python爬蟲爬取筆趣網(wǎng)小說網(wǎng)站過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11