02私有屬性

2021-10-12 10:18:51 字數 2734 閱讀 7054

(即不希望被訪問到的屬性)

模式: __ 屬性名 __ 方法名

eg:

class

women

:def

__init__

(self,name)

: self.name = name

self.__age =

18def

secret

(self)

:print

("%s不希望別人看到她的年齡是%d歲"

%(self.name,self.__age)

)xiaofang = women(

"小芳"

)print

(xiaofang.__age)

結果:

attributeerror:

'women'

object has no attribute '__age

結果看到不能呼叫,因為是私有屬性。

class

women

:def

__init__

(self,name)

: self.name = name

self.__age =

18def

secret

(self)

:print

("%s不希望別人看到她的年齡是%d歲"

%(self.name,self.__age)

)xiaofang = women(

"小芳"

)print

(xiaofang.secret(

))

結果:

小芳不希望別人看到她的年齡是18歲

none

儲存在內部的私有屬性可以訪問

下面是私有方法:

class

women

:def

__init__

(self,name)

: self.name = name

self.__age =

18def

__secret

(self)

:print

("%s不希望別人看到她的年齡是%d歲"

%(self.name,self.__age)

)xiaofang = women(

"小芳"

)print

(xiaofang.__secret(

))

結果:

attributeerror

'women'

object has no attribute '__secret'

_類名__私有名

eg:

class

women

:def

__init__

(self,name)

: self.name = name

self.__age =

18def

__secret

(self)

:print

("%s不希望別人看到她的年齡是%d歲"

%(self.name,self.__age)

)xiaofang = women(

"小芳"

)print

(xiaofang._women__age)

print

(xiaofang._women__secret(

))

執行結果:

18

小芳不希望別人看到她的年齡是18歲

none

通過直接呼叫父類的

公有方法

間接*呼叫私有方法

classa:

def__init__

(self,name)

: self.name = name

self.__age =

18def

__secret

(self)

:print

("%s才不會告訴你它的年齡是%d歲"

%(self.name,self.__age)

)def

secret

(self)

:print

("臥槽,年輕人不講武德!竟然利用公有方法找私有方法"

) self.__secret(

)class

b(a)

:def

hu(self)

:print

("你以為我找不到你?"

) self.secret(

)c = b(

"傻帽"

)c.hu(

)

執行結果:

你以為我找不到你?

臥槽,年輕人不講武德!竟然利用公有方法找私有方法

傻帽才不會告訴你它的年齡是18歲

新人創作,若有問題,歡迎大佬們的斧正

python 私有屬性和視為私有屬性

python模組中的視為私有屬性 總的來說,python中有 幾種特殊的屬性 在python模組中,我們經常會見到 x 其中後面兩種 x 是習慣上的私有變數,我們不應該在外部使用它,而是應該通過呼叫內部函式來使用,但這裡是不應該而不是不能,所以要靠我們自覺遵守這個標準,另外,在自定義模組的時候,也要...

類的建構函式 私有屬性,私有屬性不 絕對 私有

建構函式及其他 class a def init self self.hour 0 self.minute 0 init 為類的建構函式,每次建立類物件時,都會執行建構函式。建構函式 init 會初始化類物件屬性,並且返回none。python類還可以定義其他的特殊方法,這些方法之前 之後都會有雙下...

property 私有屬性

coding utf 8 class people object def init self,name,age self.name name self.age age 私有屬性 self.number 0 這倆函式的作用,就是在為了在類宣告的外部,可以訪問到私有屬性 專門定義函式獲取私有屬性值 de...