我對python下劃線的一些理解

2021-10-03 17:42:41 字數 1521 閱讀 7784

'單下劃線』開始的成員變數叫做保護變數,類內部能夠訪問並修改,類物件和子類物件可以直接呼叫。

'單下劃線』開始的類,不能通過 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 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開始。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下劃線作為變數名的開始。一般來講,變...