變數:
1. 前帶_的變數: 標明是乙個私有變數, 只用於標明, 外部類還是可以訪問到這個變數
2. 前帶兩個_ , 後帶兩個_ 的變數: 標明是內建變數,
3. 大寫加下劃線的變數: 標明是 不會發生改變的全域性變數
函式:
1. 前帶_的變數: 標明是乙個私有函式, 只用於標明,
2. 前帶兩個_ ,後帶兩個_ 的函式: 標明是特殊函式
python 的**風格由 pep 8 描述。這個文件描述了 python 程式設計風格的方方面面。在遵守這個文件的條件下,不同程式設計師編寫的 python **可以保持最大程度的相似風格。這樣就易於閱讀,易於在程式設計師之間交流。
常量 : 大寫加下劃線
user_constant
對於不會發生改變的全域性變數,使用大寫加下劃線。
私有變數 : 小寫和乙個前導下劃線
_private_value
python 中不存在私有變數一說,若是遇到需要保護的變數,使用小寫和乙個前導下劃線。但這只是程式設計師之間的乙個約定,用於警告說明這是乙個私有變數,外部類不要去訪問它。但實際上,外部類還是可以訪問到這個變數。
內建變數 : 小寫,兩個前導下劃線和兩個後置下劃線
__class__
兩個前導下劃線會導致變數在解釋期間被更名。這是為了避免內建變數和其他變數產生衝突。使用者定義的變數要嚴格避免這種風格。以免導致混亂。
總體而言應該使用,小寫和下劃線。但有些比較老的庫使用的是混合大小寫,即首單詞小寫,之後每個單詞第乙個字母大寫,其餘小寫。但現在,小寫和下劃線已成為規範。
私有方法 : 小寫和乙個前導下劃線
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
斷言可以用於檢查引數,但不應僅僅是進行靜態型別檢測。 python 是動態型別語言,靜態型別檢測違背了其設計思想。斷言應該用於避免函式不被毫無意義的呼叫。
*args 和 **kwargs 引數可能會破壞函式的健壯性。它們使簽名變得模糊,而且**常常開始在不應該的地方構建小的引數解析器。
is_connect = true
has_member = false
members = ['user_1', 'user_2']
person_address =
諸如 list, dict, sequence 或者 element 這樣的名稱應該避免。
諸如 os, sys 這種系統已經存在的名稱應該避免。
需求 15 帶下劃線
pragma mark uiunderlinedbutton.implementation uiunderlinedbutton uiunderlinedbutton underlinedbutton void drawrect cgrect rect 使用 uiunderlinedbutton b...
Python中單下劃線和雙下劃線
python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。class a def init self,text self.text text def str self return self...
Python中單下劃線和雙下劃線
雙下劃線開頭和結尾 python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。classa def init self,text self.text text def str self re...