python類的三大特性 封裝

2021-09-29 23:04:18 字數 2696 閱讀 8765

四、property屬性

封裝:指隱藏物件的屬性和實現細節,不允許外部直接方位物件內部的資訊,僅僅提供公共的訪問方式給外部,實現外部對內部的操作和訪問。

封裝的目的

封裝的益處

python中採用雙下劃線開頭的方式將變數設定為私有變數,即「__***」

私有變數的特點:

classp(

object):

def__init__

(self)

: self.__a =

10 self.a =

0def

p(self)

:print

('%d '

% self.__a)

print

('%d '

% self.a)

p = p(

)p.p(

)>>

>

100

沒有定義私有方法時,子類會重寫父類的方法:

class

animal

(object):

defbak

(self)

:print

('bak'

)def

test

(self)

: self.bak(

)class

dog(animal)

:def

bak(self)

:print

('汪汪'

)d = dog(

)d.test(

)>>

>

汪汪

定義私有方法時,子類無法重寫父類的方法:

class

animal

(object):

def__bak

(self)

:print

('bak'

)def

test

(self)

: self.__bak(

)class

dog(animal)

:def

__bak

(self)

:print

('汪汪'

)d = dog(

)d.test(

)>>

>

bak

使用property屬性的目的:使用property屬性之後,呼叫方法時,直接得到該結果,無法知悉方法本身細節。

class

person

(object):

def__init__

(self, name)

: self.__name = name

# python3 中才有property的@***.setter,@***.deleter形式

@property

# 讀def

name

(self)

:print

(self.__name)

@name.setter # 寫

defname

(self, name1)

: self.__name = name1

print

(self.__name)

@name.deleter # 刪除

defname

(self)

:print

(none

)p = person(

'tom'

)p.name

p.name =

'jack'

del p.name

>>

>

tomjack

none

property類屬性方式

property()函式有四個引數:

property(get_***, set_***, del_***, 「doc_description」)

class

person

(object):

def__init__

(self, name)

: self.__name = name

defname

(self)

:print

(self.__name)

defset_name

(self,name1)

: self.__name = name1

print

(self.__name)

defdel_name

(self)

:print

(none

) name =

property

(name, set_name, del_name)

p = person(

'tom'

)p.name

p.name =

'jack'

del p.name

>>

>

tomjack

none

類的三大特性 封裝以及Property特性

class people def init self,height,weight self.height height self.weight weight property 裝飾器,下面方法的呼叫無需加 defbmi self return self.weight self.height 2 pe...

python的三大特性之封裝

隱藏物件的某些屬性和實現的細節,僅僅只對外提供公共訪問的方式。將函式和屬性裝到了乙個非全域性的命名空間。封裝的好處 1 將變化隔離 2 便於使用 3 提高復用性 4 提高安全性 1 將不需要對外提供的內容全部都隱藏起來 2 吧屬性都隱藏,提供公共方法對其訪問 私有變數 不能在類的外面去引用它。它依然...

python類的三大特性

繼承簡介繼承是面對物件的三大特點之一 通過繼承我們可以使乙個類獲取他繼承的類中的屬性 變數 和方法 函式 在定義類時,可以在類名後面的括號中指定當前類的父類 超類,基類 繼承提高了類的復用性。讓類與類之間產生了關係。又累這個關係,才有了多型的特性。方法重寫如果在子類中有和父類同名的方法,如果我們呼叫...