1. 程式人生 > >[Python隨筆]Python函式命名-PEP8編碼規範的說明及IDE提示的忽略

[Python隨筆]Python函式命名-PEP8編碼規範的說明及IDE提示的忽略

對IDE提示的好奇

在使用Python程式設計時,某函式setMainFrameColor()出現了黃色下劃線並有以下資訊
Function name should be lowercase less… (Ctrl+F1)
Inspection info: This inspection checks the PEP8 naming conventions.

翻譯過來就是:
函式名需要小寫
檢視資訊:檢視器檢測到了PEP8命名規範
在說PEP8前首先介紹命名法.

駝峰命名法與下劃線法

駱駝式命名法(Camel-Case)又稱駝峰式命名法,是電腦程式編寫時的一套命名規則(慣例)。正如它的名稱CamelCase所表示的那樣,是指混合使用大小寫字母來構成變數和函式的名字。程式設計師們為了自己的程式碼能更容易的在同行之間交流,所以多采取統一的可讀性比較好的命名方式。

#駝峰命名法
printEmployeePaychecks();
def setMainFrameColor(self, color):
        ...
#下劃線法
print_employee_pay_checks();
def set_main_frame_color(self, color):
        ...     

在Java語言中比較流行駝峰命名法,而在C語言中則流行下劃線法,至少老師是這樣教過(大霧

PEP8編碼規範

Introduction 介紹
本文提供的Python程式碼編碼規範基於Python主要發行版本的標準庫。Python的C語言實現的C程式碼規範請檢視相應的PEP指南1。
這篇文件以及PEP 257(文件字串的規範)改編自Guido原始的《Python Style Guide》一文,同時添加了一些來自Barry的風格指南2。
這篇規範指南隨著時間的推移而逐漸演變,隨著語言本身的變化,過去的約定也被淘汰了。
許多專案有自己的編碼規範,在出現規範衝突時,專案自身的規範優先。

A Foolish Consistency is the Hobgoblin of Little Minds 盡信書,則不如無書
Guido的一條重要的見解是程式碼閱讀比寫更加頻繁。這裡提供的指導原則主要用於提升程式碼的可讀性,使得在大量的Python程式碼中保持一致。就像PEP 20提到的,“Readability counts”。
這是一份關於一致性的風格指南。這份風格指南的風格一致性是非常重要的。更重要的是專案的風格一致性。在一個模組或函式的風格一致性是最重要的。
然而,應該知道什麼時候應該不一致,有時候編碼規範的建議並不適用。當存在模稜兩可的情況時,使用自己的判斷。看看其他的示例再決定哪一種是最好的,不要羞於發問。
特別是不要為了遵守PEP約定而破壞相容性!

隨便在中文文件中抄了點介紹,原文見PEP8編碼規範
其中,在命名規範章節找到了以下資訊:

Prescriptive: Naming Conventions 約定俗成:命名約定
Function Names 函式名
函式名應該小寫,如果想提高可讀性可以用下劃線分隔。
大小寫混合僅在為了相容原來主要以大小寫混合風格的情況下使用(比如 threading.py),保持向後相容性。

所以如果按照PEP8的標準,函式名不應該大寫,但是意味著分割單詞需要用下劃線而不能使用駝峰命名法了
但是 Who care 呢? 《Python基礎教程(第三版)》不也有一些駝峰命名法嗎,例如:

#P349
def writeHeader(self, title):
		...
#P344
def startElement(self, name, attrs)
		...
def endElement(self, name):
		...

所以只要能保證看著覺得順眼,可讀性高就沒問題了,更難的是如何用優秀的英語能力去優化函式名,例如

def calculate_and_store_the_result_by_admin()

關閉IDE提示

這裡使用的IDE是JetBrains PyCharm 2018.2.4 x64
左上角File->Setting->搜尋 inspections 在右側找到 “PEP 8 naming convention violation” 取消名字旁邊的√即可
在這裡插入圖片描述