Python之物件導向 繼承 第十四天

2021-10-02 11:00:22 字數 4097 閱讀 9068

1、物件導向的優點:

物件導向是一種結構化的程式設計方式,好處如下:

(1)通過封裝明確了內、外

(2)通過繼承+多型在語言層面支援了歸一化設計

歸一化設計原理:使用介面函式、一切皆檔案

2、類的定義

類是一種資料結構,就好比乙個模型,該模型用來表述一類事物(事物即資料和動作的結合體),用它來產生真實的物體(例項)

3、物件的定義

你看到的一切事物都是乙個個的物件,可以把物件理解成為乙個具體的事物(擁有資料和動作的結合體)

4、類和物件的關係

物件都是由類產生的,上帝造人,首先有乙個造人的模板,這個模板即人的類,然後上帝根據類的定義來生產乙個個的人

5、例項化定義

由類生產物件的過程叫例項化,類例項化的結果就是乙個物件,或者叫做乙個例項(例項=物件)

6、物件導向設計:將一類具體事物的資料和動作整合到一起

7、物件導向程式設計:用了定義類+例項物件的方式去實現物件導向的設計

8、靜態方法

staticmethod靜態方法只是名義上的歸屬類,不能使用類變數和例項變數,是類的工具包

class room:

def __init__

(self,name,owner,width,length)

: self.name=name

self.owner=owner

self.width=width

self.length=length

@property

def cal_area

(self)

: area=self.width * self.length

return area

@staticmethod

def wash_room()

:print

("這裡是洗浴室"

)r1=

room

("別墅"

,"lalala"

,100

,100

)print

(r1)

#輸出結果:

<__main__.room object at 0x1038f51c0

>

9、組合

(1)定義:定義乙個類,通過資料屬性形成乙個例項化的物件,這就是組合

(2)用途:

10、物件導向三大特性:繼承、封裝、多型

(1)繼承

class parentclass1:

pass

class parentclass2:

pass

#單繼承

class sonclass1

(parentclass1)

:

pass

#多繼承

class sonclass2

(parentclass1,parentclass2)

:

pass

(2)繼承和集合的選擇?

class animal:

def eat

(self)

: pass

def drink

(self)

: pass

def la

(self)

: pass

def sa

(self)

: pass

class dog

(animal)

: def wang

(self)

:print

("汪汪汪"

)class cat

(animal)

: def miao

(self)

:print

("喵喵喵"

)

(3)繼承的含義

class animal:

def eat

(self)

: pass

def drink

(self)

: pass

class dog

(animal)

: def eat

(self)

:print

("c吃"

)

def drink

(self)

:print

("喝"

)

def wang

(self)

: pass

說明:

import abc

class animal

(metaclass=abcmeta)

: @abc.abstractmethod

def eat

(self)

: pass

class dog

(animal)

: @abc.abstractmethod

def eat

(self)

:print

("c吃"

) def wang

(self)

: pass

(4)繼承順序

區分經典類和新式類:

新式類包含很多功能,從寫法上父類繼承了object類測試新式類,否則是經典類

經典類:

class a:

pass

class b

(a):

pass

新式類:

class a

(object)

: pass

class b

(a):

pass

(5)子類呼叫父類方法,可以直接引用父類的__ init__()函式

class vehicle:

country=

"china"

def __init__

(self,name,speed,load,power)

: self.name=name

self.speed=speed

self.load=load

self.power=power

def run

(self)

:print

("開動啦"

)class subway

(vehicle)

: def __init__

(self,name,speed,load,power,line)

: vehicle.

__init__

(self,name,speed,load,power)

self.line=line

def show_info

(self)

:print

(self.name,self.speed,self.load,self.power,self.line)

s1=subway

("地鐵"

,"543m/s"

,"10000000"

,"電"

,"13號線"

)s1.

show_info()

輸出結果:

地鐵 543m/s 10000000 電 13號線

也可以直接用supper()呼叫,就把vehicle.__init__變成supper.init

Python 之物件導向 繼承

目標 單繼承多繼承 物件導向三大特性 封裝 根據 職責 將 屬性 和 方法 封裝 到乙個抽象的 類 中 繼承 實現 的重用,相同的 不需要重複的編寫 多型 不同的物件呼叫相同的方法,產生不同的執行結果,增加 的靈活度 單繼承1.1 繼承的概念 語法和特點 繼承的概念 子類 擁有 父類 的所有 方法 ...

python之物件導向

類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...

python之物件導向

python中一切皆物件 class 定義的類屬於類物件 obj1 屬於例項物件 在程式執行時,類同樣會載入到記憶體,類物件在記憶體中只有乙份,使用乙個類可以建立出很多例項物件 除了封裝例項的屬性和方法外,類物件還可以擁有自己的屬性和方法 類屬性和例項屬性 類屬性就是給類物件中定義屬性,通常用來記錄...