'單下劃線』開始的成員變數叫做保護變數,類內部能夠訪問並修改,類物件和子類物件可以直接呼叫。
'單下劃線』開始的類,不能通過 from 所在模組 import * 這種方式匯入,可以通過import 所在模組方式匯入
'雙下劃線』開始的成員變數叫做私有變數,類內部能夠訪問並修改,但物件,子類物件不能直接訪問,但可以通過
_所在類__*** 的方式訪問,
python特殊方法,不要以這種方式命名自己的變數或函式
__init__(self
) 』類的構造方法
__str__(self)
print(例項物件) 會呼叫該方法,預設列印物件的記憶體位址
__del__(self)
銷毀物件時,del 物件 會呼叫該方法
這是t2.py
class _a:
def __str__(self):
return '我是_a'
class father:
_mother = '母親' # 以單下劃線開頭的類屬性
__wife = '翠花' # 以雙下劃線開頭的類屬性
def __init__(self, name, age):
self._name = name # 以單下劃線開頭例項變數
self.__age = age # 以雙下劃線開頭例項變數
def change(self, name, age):
# 更改以下劃線開頭的屬性
self._name = name
self.__age = age
def __str__(self):
# 類內部呼叫_開頭或__開頭的例項變數
return "{}今年{}歲".format(self._name, self.__age)
class son(father):
_mother = '翠花'
__wife = '?'
if __name__ == '__main__':
father = father('二狗', '26')
son = son('狗蛋', '2')
print(father._mother) # 呼叫類屬性 _mother
print(father._father__wife) # 呼叫類屬性 __wife
print(father._name) # 當前類物件呼叫_name
print(son._name) # 子類呼叫_name
print(father._father__age) # 當前物件呼叫 __age
print(son._father__age) # 子類物件呼叫 __age
這是t1.py
import t2 # 要以這種形式匯入
a = t2._a() #這種形式呼叫 _類名
print(a)
python的單下劃線和雙下劃線
python 類中的單下劃線開頭的變數表示 該方法為類的私有方法,原則上外部不能訪問,但是用.xx是可以訪問到的 雙下劃線開頭則是強制外部不能直接訪問的用.xx是訪問不到的,它內部其實是將變數名重新命名為 類名 變數名,所以可以通過.類名 變數名訪問 coding utf 8 author linh...
python的下劃線
首先是單下劃線開頭,這個被常用於模組中,在乙個模組中以單下劃線開頭的變數和函式被預設當作內部函式,如果使用 from a module import 匯入時,這部分變數和函式不會被匯入。不過值得注意的是,如果使用 import a module 這樣匯入模組,仍然可以用 a module.some ...
Python 單下劃線與雙下劃線的區別
python 用下劃線作為變數字首和字尾指定特殊變數。不能用 from moduleimport 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開始。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下劃線作為變數名的開始。一般來講,變...