Python基礎 物件導向OOP

2021-10-23 02:20:28 字數 3380 閱讀 4034

魔法函式

物件導向概述

幾個名詞

類和物件的概念

類的內容,應該具有兩個內容

類的基本實現

如何宣告乙個類

可以通過缺省內置變數檢查類和物件的所有成員

類的所有成員檢查

'''

定義乙個學生類,用來形容學生

'''class

student()

:#乙個空類,pass代表跳過

#pass必須有

pass

#定義乙個物件

zs = student(

)#再定義乙個類,用來描述聽python的學生

class

pythonstudent()

: name =

none

age =

19 course =

"python"

defdohomework

(self)

:print

(self.name)

print

("我在寫作業"

)#推薦在函式末尾使用return返回

return

none

defgohome

(self)

:print

("我要回家啦"

)return

none

#例項化乙個物件,具有具體的功能

yueyue = pythonstudent(

)yueyue.name =

"yueyue"

yueyue.dohomework(

)#類和物件的成員檢測

yueyue.__dict__

pythonstudent.__dict__

類和物件的成員分析

self

#self案例

classa(

):#建立乙個有self的方法

defaa

(self)

:print

("這裡是aa"

)#建立乙個沒有self的方法

defbb()

:print

("這裡是bb"

)#例項化a

a = a(

)#訪問a類中的aa方法,aa方法是有self引數的,預設將a作為引數,傳進去

a.aa(

)#訪問a類中的bb方法,bb方法是沒有self引數的,如果通過物件a進行呼叫的話,會預設將a作為引數傳進去,會報錯

#如果使用類例項來呼叫的話,直接呼叫的是a.bb()不需要傳入任何引數

a.bb(

)

物件導向的三大特性

判別物件的位置 私有

受保護的封裝protected

公開的,公共的 public

繼承繼承變數的查詢順序問題

建構函式

super

單繼承和多繼承

多繼承

菱形繼承/鑽石繼承

多型

#建立乙個worker(工人)類

class worker(person):

def work(self):

print("我在蓋房子")

#建立乙個teacher類

class teacher(person):

def work(self):

print("我在教書")

#建立乙個police類

class police(person):

def work(self):

print("我在執行公務")

#建立乙個介面,傳入乙個任意型別的值

def fun(obj):

obj.work()

wor = worker()

tea = teacher()

pol = police()

#開始呼叫不同的方法

fun(wor)

fun(tea)

fun(pol)

#其中工人類,教師類,警察類是person類的多種形態

mixin設計模式

優點 類相關函式

類的成員描述符(屬性)

如果想使用類的成員描述符,大概有三種方法

類的內建屬性

類的魔術方法

屬性操作相關 作用

classa(

):name =

none

def__setattr__

(self,key,value)

:super()

.__setattr__(key,value)

a = a(

)a.name =

"zhangsan"

print

(a.name)

類和物件的三種方法

靜態方法

類方法

class

person()

:#例項方法

defeat

(self)

:print

(self)

print

("例項方法呼叫"

)#類方法

#類方法用 @classmethod宣告

@classmethod

defpaly

(cls)

:print

(cls)

print

("類方法呼叫"

) @staticmethod

defrun()

:print

("例項方法呼叫"

)zhangsan = person(

)#呼叫例項方法

zhangsan.eat(

)#呼叫類方法

person.paly(

)#用物件呼叫類方法

zhangsan.paly(

)#呼叫靜態方法

person.run(

)#用物件呼叫靜態方法

zhangsan.run(

)

抽象方法

抽象類

import abc

class q(metaclass=abc.abcmeta):

#抽象例項方法

@abc.abstractmethod

def a(self):

pass

#抽象類方法

@abc.classmethod

def b(cls):

pass

#抽象例項方法

@abc.staticmethod

def d():

pass

自定義類

物件導向(OOP)基礎

1 物件導向特性 封裝 繼承 多型。2 oop概念 類 class 物件 object 字段 field 描述類的某些性質。屬性 attribute 通過方法訪問和操作字段。方法 method 定義類的行為。3 類的建立 修飾符 class 類名 class computer 4 物件的宣告 例項化...

python基礎11 OOP 面向 物件

裡面的詩歌很美 魔法函式 幾個名詞 類和物件的概念 類中的內容,應該具有兩個內容 如何宣告乙個類 例項化類 變數 類名 例項化了乙個物件 訪問物件成員 可以通過缺省內置變數檢查類和物件的所有成員 6.1 封裝 判別物件的位置 私有 受保護的封裝 protected 語法 class person n...

python物件導向程式設計 OOP

物件導向程式設計,是一種程式設計方式,這種程式設計方式需要使用 物件 來實現。萬物都是物件。物件的特徵 1.世間萬物皆物件 2.每個物件都是唯一的 3.物件具有屬性和行為 物件的行為包括具有的功能以及具體的實現 4.物件具有狀態 5.物件分為類物件和例項物件兩大類 類物件是具有相同屬性和例項物件的抽...