Python 中帶下劃線的變數和函式的意義

2021-10-17 04:44:54 字數 2342 閱讀 2902

變數:

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...