Python17 三大特性(封裝 繼承 多型)

2021-10-20 12:43:00 字數 2743 閱讀 2481

3. 多型

封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容。

所以,在使用物件導向的封裝特性時,需要:

1). 將內容封裝到某處

2). 從某處呼叫被封裝的內容

1). 通過物件直接呼叫被封裝的內容: 物件.屬性名

2). 通過self間接呼叫被封裝的內容: self.屬性名

3). 通過self間接呼叫被封裝的內容: self.方法名()

class

cat:

def__init__

(self, name, kind)

:print

('正在執行__init__構造方法'

)print

('self:'

, self)

# 封裝: self.name將物件和name屬性封裝/繫結

self.name = name

self.kind = kind

defeat(self)

:print

('cat %s like eating fish.....'

%(self.name)

)# 例項化

fentiao = cat(

"粉條"

,"美短虎斑"

)print

(fentiao.name)

print

(fentiao.kind)

fentiao.eat(

)

執行結果:

正在執行__init__構造方法

self: <__main__.cat object at 0x0000029aba813fd0>

粉條美短虎斑

cat 粉條 like eating fish.....

子類(派生類 derivedclassname)會繼承父類(基類 baseclassname)的屬性和方法。

class

student

:"""父類student"""

def__init__

(self, name, age)

: self.name = name

self.age = age

deflearning

(self)

:print

(f'正在學習'

)class

mathstudent

(student)

:"""mathstudent的父類是student"""

pass

# 例項化

m1 = mathstudent(

"博士",8

)print

(m1.name)

print

(m1.age)

m1.learning(

)

執行結果:博士8

博士正在學習

classd(

object):

defhellod

(self)

:print

('d'

)class

c(d)

:def

helloc

(self)

:print

('c'

)class

b(d)

:def

hellob

(self)

:print

('b'

)class

a(b, c)

:def

helloa

(self)

:print

('a'

)a = a(

)a.helloa(

)a.hellob(

)a.helloc(

)a.hellod(

)

執行結果為:ab

cd

class

parent

:# 定義父類

defmymethod

(self)

:print

('呼叫父類方法'

)class

child

(parent)

:# 定義子類

defmymethod

(self)

:print

('呼叫子類方法'

)c = child(

)# 子類例項

c.mymethod(

)# 子類呼叫重寫方法

super

(child,c)

.mymethod(

)#用子類物件呼叫父類已被覆蓋的方法

執行以上程式輸出結果為:

呼叫子類方法

呼叫父類方法

多型(polymorphism)按字面的意思就是「多種狀態」。在物件導向語言中,介面的多種不同的實現方式即為多型。通俗來說: 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。

多型的好處就是,當我們需要傳入更多的子類,只需要繼承父類就可以了,而方法既可以直接不重寫(即使用父類的),也可以重寫乙個特有的。這就是多型的意思。呼叫方只管呼叫,不管細節,而當我們新增一種的子類時,只要確保新方法編寫正確,而不用管原來的**。這就是著名的「開閉」原則:

python的三大特性之封裝

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

python類的三大特性 封裝

四 property屬性 封裝 指隱藏物件的屬性和實現細節,不允許外部直接方位物件內部的資訊,僅僅提供公共的訪問方式給外部,實現外部對內部的操作和訪問。封裝的目的 封裝的益處 python中採用雙下劃線開頭的方式將變數設定為私有變數,即 私有變數的特點 classp object def init ...

Python 物件導向三大特性 封裝

封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容。封裝重點 1.def init self 構造方法 雖然它是函式形式,但在類中就不叫函式了 叫方法 2.value 私有 隱藏 屬性,只能在類中被呼叫。3.def func self 私有 隱藏 方法,只能在類中被呼叫。示例1 ...