(即不希望被訪問到的屬性)
模式: __ 屬性名 __ 方法名
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...