python 類成員的修飾符

2022-06-13 18:36:12 字數 2097 閱讀 7279

類的所有成員在上一步驟中已經做了詳細的介紹,對於每乙個類的成員而言都有兩種形式:

私有成員和公有成員的定義不同:私有成員命名時,前兩個字元是下劃線。(特殊成員除外,例如:__init__、__call__、__dict__等)

class

c:

def__init__

(self):

self.name = '

公有字段

'self.

__foo = "

私有字段

"

私有成員和公有成員的訪問限制不同

靜態字段

class

c: name = "

公有靜態字段

"def

func(self):

print

c.name

class

d(c):

defshow(self):

print

c.name

c.name

#類訪問

obj =c()

obj.func()

#類內部可以訪問

obj_son =d()

obj_son.show()

#派生類中可以訪問

class

c:

__name = "

公有靜態字段

"def

func(self):

print c.__name

class

d(c):

defshow(self):

print c.__name

c.__name

#類訪問 ==> 錯誤

obj =c()

obj.func()

#類內部可以訪問 ==> 正確

obj_son =d()

obj_son.show()

#派生類中可以訪問 ==> 錯誤

普通字段

ps:如果想要強制訪問私有字段,可以通過 【物件._類名__私有欄位明 】訪問(如:obj._c__foo),不建議強制訪問私有成員。

class

c:

def__init__

(self):

self.foo = "

公有字段

"def

func(self):

print self.foo  #

類內部訪問

class

d(c):

defshow(self):

print

self.foo # 派生類中訪問

obj =c()

obj.foo

#通過物件訪問

obj.func() #

類內部訪問

obj_son =d();

obj_son.show()

#派生類中訪問

class

c:

def__init__

(self):

self.

__foo = "

私有字段

"def

func(self):

print self.foo  #

類內部訪問

class

d(c):

defshow(self):

print

self.foo # 派生類中訪問

obj =c()

obj.

__foo

#通過物件訪問 ==> 錯誤

obj.func() #

類內部訪問 ==> 正確

obj_son =d();

obj_son.show()

#派生類中訪問 ==> 錯誤

方法、屬性的訪問於上述方式相似,即:私有成員只能在類內部使用

ps:非要訪問私有屬性的話,可以通過 物件._類__屬性名

C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...

學習C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static c 修飾符之成員修飾符 public protected private internal sealed abstract virtual override readonly cons...

java 類修飾符 成員變數修飾符 方法修飾符總結

類修飾符 public 訪問控制符 將乙個類宣告為公共類,他可以被任何物件訪問,乙個程式的主類必須是公共類。abstract,將乙個類宣告為抽象類,沒有實現的方法,需要子類提供方法實現。final,將乙個類生命為最終 即非繼承類 表示他不能被其他類繼承。friendly,預設的修飾符,只有在相同包中...