Python3中關於下劃線變數和命名的總結

2021-10-01 22:51:31 字數 2636 閱讀 9223

變數

#!-*-coding:utf-8-*-

#__author__ = 'ecaoyng'

# # 變數

#_***,單下劃線開頭的變數,標明是乙個受保護(protected)的變數,原則上不允許直接訪問,但外部類還是可以訪問到這個變數。

#這只是程式設計師之間的乙個約定,用於警告說明這是乙個私有變數,外部類不要去訪問它。

class

student

:def

__init__

(self, name, age)

: self._name = name

self.age=age

stu=student(

'alvin'

,'30'

)#當要輸入_name時,pycharm不會進行_name的提示

print

(stu._name)

#當要顯示age時,pycharm會進行age的提示

print

(stu.age)

#output:

#alvin

#30# __***,雙下劃線開頭的,表示的是私有型別(private)的變數。

# 只能是允許這個類本身進行訪問了, 連子類也不可以.

# 用於命名乙個類屬性(類變數),呼叫時名字被改變

#(在類student內部,__name變成_student__name,如 self._student__name)

# 雙下劃線開頭的例項變數是不是一定不能從外部訪問呢?其實也不是。仍然可以通過_student__name來訪問__name變數:

class

person

:def

__init__

(self, name)

: self.__name=name

per=person(

'young'

)print

(per._person__name)

#output: young

#__***__,以雙下劃線開頭,並且以雙下劃線結尾的,是內建變數.

# 內建變數是可以直接訪問的,不是 private 變數,如__init__,__import__或是__file__。

# 所以,不要自己定義這類變數

#***_,單下劃線結尾的變數一般只是為了避免與 python 關鍵字的命名衝突

#user_constant,大寫加下劃線,對於不會發生改變的全域性變數,使用大寫加下劃線

函式

#函式

#總體而言應該使用,小寫和下劃線。但有些比較老的庫使用的是混合大小寫,即首單詞小寫,之後每個單詞第乙個字母大寫,其餘小寫。

# 但現在,小寫和下劃線已成為規範

#私有方法 : 小寫和乙個前導下劃線

#這裡和私有變數一樣,並不是真正的私有訪問許可權。

# 同時也應該注意一般函式不要使用兩個前導下劃線(當遇到兩個前導下劃線時,python 的名稱改編特性將發揮作用)。特殊函式後面會提及。

class

privatec

:def

_secrete

(self)

:print

('don\'t test me'

)pric=privatec(

)pric._secrete(

)#特殊方法 : 小寫和兩個前導下劃線,兩個後置下劃線

#這種風格只應用於特殊函式,比如操作符過載等。

def__add__

(self, other)

:return

int.__add__(other)

#函式引數 : 小寫和下劃線,預設值等號兩邊無空格

defconnect

(self, user=

none):

self._user = user

#類

#類總是使用駝峰格式命名,即所有單詞首字母大寫其餘字母小寫。

# 類名應該簡明,精確,並足以從中理解類所完成的工作。

# 常見的乙個方法是使用表示其型別或者特性的字尾,例如:sqlengine ,mimetypes

#對於基類而言,可以使用乙個 base 或者 abstract 字首

# 不要濫用 *args 和 **kwargs,可能會破壞函式的健壯性

推薦

#推薦

#一行列數 : pep 8 規定為 79 列,這有些苛刻了。根據自己的情況,比如不要超過滿屏時編輯器的顯示列數。這樣就可以在不動水平游標的情況下,方便的檢視**。

#乙個函式 : 不要超過 30 行**, 即可顯示在乙個螢幕類,可以不使用垂直游標即可看到整個函式。

#乙個類 : 不要超過 200 行**,不要有超過 10 個方法。

#乙個模組 不要超過 500 行。

# easy_install pep8

# pep8 -r --ignoire e501 test.py

# 這個命令列的意思是,重複打出錯誤,並且忽略 501 錯誤(**超過 79 行)。

參考自:

Python3中關於下劃線變數和命名的總結

coding utf 8 author ecaoyng 變數 單下劃線開頭的變數,標明是乙個受保護 protected 的變數,原則上不允許直接訪問,但外部類還是可以訪問到這個變數。這只是程式設計師之間的乙個約定,用於警告說明這是乙個私有變數,外部類不要去訪問它。class student def ...

Python3中 下劃線 和

在看一些python開源 時,經常會看到以下劃線或者雙下劃線開頭的方法或者屬性,到底它們有什程式設計客棧麼作用,又有什麼樣的區別呢?今天我們來總結一下 注 下文中的 在pythowww.cppcns.comn3下測試通過 的含義 在python的類中沒有真正的私有屬性或方法,沒有真正的私有化。但為了...

Python中單下劃線和雙下劃線

python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。class a def init self,text self.text text def str self return self...