Python基礎(21)物件導向 補充

2021-10-03 22:33:47 字數 2961 閱讀 3392

多型 更容易編寫出出通用的**,做出通用的程式設計,以適應需求的不斷變化。 需求

在 dog 類中封裝方法 game

普通狗只是簡單的玩耍

定義 xiao tian dog 繼承自 dog ,並且重寫 game 方法

哮天犬需要在天上玩耍

定義 person 類,並且封裝乙個 和狗玩 的方法

在方法內部,直接讓 狗物件 呼叫 game 方法

class

dog(

object):

def__init__

(self,name)

: self.name = name

defgame

(self)

:print

("%s 蹦蹦跳跳的玩耍..."

% self.name)

class

xiaotiandog

(dog)

:def

game

(self)

:print

("%s 飛到天上去玩耍..."

% self.name)

class

person

(object):

def__init__

(self,name)

: self.name = name

defplay_game

(self,dog)

:print

("%s 和 %s 快樂的玩耍..."

%(self.name, dog.name)

) dog.game(

)x = xiaotiandog(

'哮天犬'

)v = dog(

'小狗'

)dagu = person(

'dagu'

)dagu.play_game(x)

dagu.play_game(v)

'''dagu 和 哮天犬 快樂的玩耍...

哮天犬 飛到天上去玩耍...

dagu 和 小狗 快樂的玩耍...

小狗 蹦蹦跳跳的玩耍...

類屬性得優點:

類屬性只能通過類物件修改,不能通過例項物件修改,如果通過例項物件修改類屬性,表示是建立了乙個例項屬性。

classa(

object):

name =

10i = a(

)j =a(

)i.name =

20print

(i.name)

# 20

print

(j.name)

# 10

a.name =

30print

(i.name)

# 20

print

(j.name)

# 30

4.1.1類方法特點

@classmethod

def 類方法名(cls)

:pass

在方法內部:可以通過 cls. 訪問類的屬性;也可以通過 cls. 呼叫其他的類方法。

class

tool()

: count =

0def

__init__

(self,name)

: self.name = name

# 統計建立的物件個數

tool.count +=

1 @classmethod

defshow_tool_count

(cls)

:print

('建立的物件個數:%d'

%cls.count)

tool1 = tool(

"斧頭"

)tool2 = tool(

"榔頭"

)tool3 = tool(

"鐵鍬"

)tool1.show_tool_count(

)tool.show_tool_count(

)'''

建立的物件個數:3

建立的物件個數:3

'''

在開發時,如果需要在類中封裝乙個方法,這個方法:

@staticmethod

def 靜態方法名():

pass

class

dog(

object):

# 狗物件計數

dog_count =

0 @staticmethod

defrun()

:# 不需要訪問例項屬性也不需要訪問類屬性的方法

print

("狗在跑..."

)def

__init__

(self, name)

: self.name = name

dahuang = dog(

'dahuang'

)dahuang.run(

)dog.run(

)'''

狗在跑...

狗在跑...

'''

2 1物件導向程式設計基礎(3)

格式 class 派生類名 繼承方式 基類名 繼承方式 private public protected 注意 派生類繼承基類的成員函式,但不繼承建構函式 派生類建構函式名 總引數列表 基類建構函式名 引數列表 注意 若沒有基類建構函式,則按預設建構函式初始化基類的變數 例子 include usi...

九 物件導向 補

this關鍵字表示當前物件本身,一般用於類的內部,其內部存在乙個位址,指向當前初始化的物件本身.new 乙個物件時,其實產生了兩個引用,兩個引用執行同一記憶體空間 物件 所以類中用this來表示當前物件,因為不用this,我們是不知道在建立物件時具體的物件名的 1.呼叫成員變數 用於解決成員變數與區...

python物件導向基礎 python物件導向基礎

面向過程與物件導向 面向過程的程式設計的核心是過程 流水線式思維 過程即解決問題的步驟,面向過程的設計就好比精心設計好的一條流水線,考慮周全什麼時候處理什麼東西。優點 極大降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點 一套流水線或者流程就是解決乙個問題,牽一髮而動全身。應用場景 一...