關於python中帶下劃線的變量和函數 的意義

總結:
變量:
1.  前帶_的變量:  標明是一個私有變量, 只用於標明, 外部類仍是能夠訪問到這個變量
2.  前帶兩個_ ,後帶兩個_ 的變量:  標明是內置變量,
3.  大寫加下劃線的變量:  標明是 不會發生改變的全局變量
函數:
1. 前帶_的變量: 標明是一個私有函數, 只用於標明,
2.  前帶兩個_ ,後帶兩個_ 的函數:  標明是特殊函數
 
 
 
Python 的代碼風格由 PEP 8 描述。這個文檔描述了 Python 編程風格的方方面面。在遵照這個文檔的條件下,不一樣程序員編寫的 Python 代碼能夠保持最大程度的類似風格。這樣就易於閱讀,易於在程序員之間交流。


1 變量

常量 : 大寫加下劃線
USER_CONSTANT
對於不會發生改變的全局變量,使用大寫加下劃線。

私有變量
 : 小寫和一個前導下劃線

_private_value
Python 中不存在私有變量一說,如果遇到須要保護的變量,使用小寫和一個前導下劃線。但這只是程序員之間的一個約定,用於警告說明這是一個私有變量,外部類不要去訪問它。但實際上,外部類仍是能夠訪問到這個變量。

內置變量 : 小寫,兩個前導下劃線和兩個後置下劃線
__class__
兩個前導下劃線會致使變量在解釋期間被改名。這是爲了不內置變量和其餘變量產生衝突。用戶定義的變量要嚴格避免這種風格。以避免致使混亂。


2 函數和方法

整體而言應該使用,小寫和下劃線。但有些比較老的庫使用的是混合大小寫,即首單詞小寫,以後每一個單詞第一個字母大寫,其他小寫。但如今,小寫和下劃線已成爲規範。

私有方法 : 小寫和一個前導下劃線
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



3 類編輯器

類老是使用駝峯格式命名,即全部單詞首字母大寫其他字母小寫。類名應該簡明,精確,並足以從中理解類所完成的工做。常見的一個方法是使用表示其類型或者特性的後綴,例如:
SQLEngine
MimeTypes

對於基類而言,可使用一個 Base 或者 Abstract 前綴
BaseCookie
AbstractGroup函數

class UserProfile(object):
    def __init__(self, profile):
        return self._profile = profile

    def profile(self):
        return self._profile



4 模塊和包spa

除特殊模塊 __init__ 以外,模塊名稱都使用不帶下劃線的小寫字母。
如果它們實現一個協議,那麼一般使用lib爲後綴,例如:
import smtplib命令行

import os
import sys



5 關於參數

5.1 不要用斷言來實現靜態類型檢測
斷言能夠用於檢查參數,但不該僅僅是進行靜態類型檢測。 Python 是動態類型語言,靜態類型檢測違背了其設計思想。斷言應該用於避免函數不被毫無心義的調用。

5.2 不要濫用 *args 和 **kwargs
*args 和 **kwargs 參數可能會破壞函數的健壯性。它們使簽名變得模糊,並且代碼經常開始在不該該的地方構建小的參數解析器。


6 其餘

6.1 使用 has 或 is 前綴命名布爾元素設計

is_connect = True
has_member = False


6.2 用複數形式命名序列element

members = ['user_1', 'user_2']


6.3 用顯式名稱命名字典文檔

person_address = {'user_1':'10 road WD', 'user_2' : '20 street huafu'}


6.4 避免通用名稱
諸如 list, dict, sequence 或者 element 這樣的名稱應該避免。

6.5 避免現有名稱
諸如 os, sys 這種系統已經存在的名稱應該避免。


7 一些數字
一行列數 : PEP 8 規定爲 79 列,這有些苛刻了。根據本身的狀況,好比不要超過滿屏時編輯器的顯示列數。這樣就能夠在不動水平遊標的狀況下,方便的查看代碼。it

一個函數 : 不要超過 30 行代碼, 便可顯示在一個屏幕類,能夠不使用垂直遊標便可看到整個函數。
一個類 : 不要超過 200 行代碼,不要有超過 10 個方法。
一個模塊 不要超過 500 行


8 驗證腳本

能夠安裝一個 pep8 腳本用於驗證你的代碼風格是否符合 PEP8。

>>easy_install pep8

>>pep8 -r --ignoire E501 Test.py

這個命令行的意思是,重複打出錯誤,而且忽略 501 錯誤(代碼超過 79 行)。

相關文章
相關標籤/搜索