python 物件導向

2021-10-07 02:29:30 字數 3991 閱讀 5809

將具有相同屬性,封裝成乙個類.將類具體化被稱為例項,例如下面例子,小明,小紅,小張都是學生,他們就讀不同的學校

class

student

: name=

"" age=

0def

readbook

(self)

:if self.age<=6:

print

("%s今年%d歲,就讀幼兒園"

%(self.name,self.age))if

6print

("%s今年%d歲,就讀小學"

%(self.name,self.age))if

12print

("%s今年%d歲,就讀初中"

%(self.name,self.age)

)xiaoming=student(

)xiaoming.name=

"小明"

xiaoming.age=

5xiaoming.readbook(

)xiaohong=student(

)xiaohong.name=

"小紅"

xiaohong.age=

10xiaohong.readbook(

)xiaozhang=student(

)xiaozhang.name=

"小張"

xiaozhang.age=

14xiaozhang.readbook(

)

結果:

小明今年5歲,就讀幼兒園

小紅今年10歲,就讀小學

小張今年14歲,就讀初中

建構函式__init__:在例項產生的時候自動執行,例如上面也可以寫作:

class

student

:def

__init__

(self,name,age)

: self.name=name

self.age=age

defreadbook

(self)

:if self.age<=6:

print

("%s今年%d歲,就讀幼兒園"

%(self.name,self.age))if

6print

("%s今年%d歲,就讀小學"

%(self.name,self.age))if

12print

("%s今年%d歲,就讀初中"

%(self.name,self.age)

)xiaoming=student(

"小明",5

)xiaoming.readbook(

)xiaohong=student(

"小紅",10

)xiaohong.readbook(

)xiaozhang=student(

"小張",14

)xiaozhang.readbook(

)

可呼叫例項方法__call__:將例項當做函式呼叫,會自動執行__call__方法:

class

student

:def

__init__

(self,name,age)

: self.name=name

self.age=age

def__call__

(self,frend)

:print

("%s的朋友是%s"

%(self.name,frend)

)

xiaoming=student(

"小明",5

)xiaoming(

"小紅"

)

返回值『:

小明的朋友是小紅
類的子類,可以繼承類的屬性和方法,子類可以拓展類的屬性和方法,申明方法:class 子類(類)

,同樣的例子,小學生是學生的子類,小紅是小學生的例項,**:

class

student

:def

__init__

(self,name,age)

: self.name=name

self.age=age

defshow

(self)

:print

("%s是乙個學生,今年%d歲了"

%(self.name,self.age)

)class

pupil

(student)

:def

__init__

(self,name,age,interest)

: student.__init__(self,name,age)

#直接呼叫父類

self.interest=interest

defreadbook

(self)

:print

("%s在讀小學,愛好是%s"

%(self.name,self.interest)

)xiaohong=pupil(

"小紅",6

,"讀書"

)xiaohong.show(

)xiaohong.readbook(

)

執行結果

小紅是乙個學生,今年6歲了

小紅在讀小學,愛好是讀書

類實現乙個藉口,子類具體實現方法,子類的不同例項直接呼叫子類的方法,如:小學生 中學生 大學生都屬於學生,但是學習的東西不一樣

class

student

:def

__init__

(self,name,age)

: self.name=name

self.age=age

defstudy

(self)

:pass

class

pupil

(student)

:def

study

(self)

:print

("%s學習拼音"

%self.name)

class

midschool

(student)

:def

study

(self)

:print

("%s學習基礎數學"

%self.name)

class

collegeschool

(student)

:def

study

(self)

:print

("%s學習高數"

%self.name)

xiaohong=pupil(

"小紅",5

)xiaohong.study(

)xiaoming=midschool(

"小明",15

)xiaoming.study(

)xiaozhang=collegeschool(

"小張",20

)xiaozhang.study(

)

執行結果

小紅學習拼音

小明學習基礎數學

小張學習高數

相同的函式名,根據引數和返回值不同,呼叫不同的函式,沒找到python有過載的方法,不過可以試著用魔法函式來實現,有知道的大佬說下

defa(

*args):if

len(args)==1

:print

(args[0]

)iflen(args)==2

:print

(args[0]

-args[1]

)a(1)

a(1,2

)

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...