python 的**風格由 pep 8 描述。這個文件描述了 python 程式設計風格的方方面面。在遵守這個文件的條件下,不同程式設計師編寫的 python **可以保持最大程度的相似風格。這樣就易於閱讀,易於在程式設計師之間交流。
總體而言應該使用,小寫和下劃線。但有些比較老的庫使用的是混合大小寫,即首單詞小寫,之後每個單詞第乙個字母大寫,其餘小寫。但現在,小寫和下劃線已成為規範。
def _secrete(self):
print "don't test me."
這裡和私有變數一樣,並不是真正的私有訪問許可權。同時也應該注意一般函式不要使用兩個前導下劃線(當遇到兩個前導下劃線時,python 的名稱改編特性將發揮作用)。特殊函式後面會提及。
def __add__(self, other):
return int.__add__(other)
這種風格只應用於特殊函式,比如操作符過載等。
def connect(self, user=none):
self._user = user
類總是使用駝峰格式命名,即所有單詞首字母大寫其餘字母小寫。類名應該簡明,精確,並足以從中理解類所完成的工作。常見的乙個方法是使用表示其型別或者特性的字尾,例如:
sqlengine
mimetypes
對於基類而言,可以使用乙個 base 或者 abstract 字首
basecookie
abstractgroup
class userprofile(object):
def __init__(self, profile):
return self._profile = profile
def profile(self):
return self._profile
除特殊模組init之外,模組名稱都使用不帶下劃線的小寫字母。
若是它們實現乙個協議,那麼通常使用lib為字尾,例如:
import smtplib
import os
import sys
5.1 不要用斷言來實現靜態型別檢測
斷言可以用於檢查引數,但不應僅僅是進行靜態型別檢測。 python 是動態型別語言,靜態型別檢測違背了其設計思想。斷言應該用於避免函式不被毫無意義的呼叫。
5.2 不要濫用 *args 和 **kwargs
*args
和**kwargs
引數可能會破壞函式的健壯性。它們使簽名變得模糊,而且**常常開始在不應該的地方構建小的引數解析器。
6.1 使用 has 或 is 字首命名布林元素
is_connect = true
has_member = false
6.2 用複數形式命名序列
members = ['user_1', 'user_2']
6.3 用顯式名稱命名字典
person_address =
6.4 避免通用名稱
諸如list
,dict
,sequence
或者element
這樣的名稱應該避免。
6.5 避免現有名稱
諸如os
,sys
這種系統已經存在的名稱應該避免。
一行列數 : pep 8 規定為 79 列,這有些苛刻了。根據自己的情況,比如不要超過滿屏時編輯器的顯示列數。這樣就可以在不動水平游標的情況下,方便的檢視**。
乙個函式 : 不要超過 30 行**, 即可顯示在乙個螢幕類,可以不使用垂直游標即可看到整個函式。
乙個類 : 不要超過 200 行**,不要有超過 10 個方法。
乙個模組 不要超過 500 行。
python 雙下滑線,單下劃線
1 不能用於 from module import 以單下劃線開頭的表示的是protected型別的變數。即保護型別只能允許其本身與子類進行訪問。2 雙下劃線的表示的是私有型別的變數。只能是允許這個類本身進行訪問了。連子類也 不可以3 定義的是特列方法。像 init 之類的 例項1 2class s...
Python程式設計 變數命名規範
變數型別 規範示例 包或模組 純小寫字母和下劃線 numpy,matplotlib,bert 類單詞首字母大寫,其餘小寫 classbertconfig 常量純大寫字母和下劃線 batch size 8 flag false 例項純小寫字母和下劃線 dataset dataset sess tf.s...
變數命名規範
除第乙個單詞之外,其他單詞首字母大寫 常用於變數 int mystudentnumber每乙個單詞的首字母都採用大寫字母 常用語類名,函式名,屬性,命名空間 class studentfamily變數名 屬性 型別 物件描述,這樣做的好處是使程式設計師第一眼看到變數時就對變數的型別和其它屬性有直觀的...