python 物件導向那些事 3

2021-10-10 11:51:56 字數 2360 閱讀 6439

1、例項和物件的基本概念

#定義工具類,輸出建立了多少工具物件

class

tool

(object):

count =

0def

__init__

(self, name)

: self.name = name

tool.count +=1

tool_1 = tool(

"剪刀"

)tool_2 = tool(

"滑鼠"

)print

(tool.count)

4、屬性獲取機制(向上查詢機制),首先在物件內部查詢,然後向上查詢類屬性。

class

tool

(object):

count =

0def

__init__

(self, name)

: self.name = name

tool.count +=1

tool_1 = tool(

"剪刀"

)tool_2 = tool(

"滑鼠"

)tool_2.count =

99#直接給物件tool_2建立了個count屬性

print

(tool_2.count)

# 99

print

(tool.count)

# 2

5、類方法就是針對類物件定義的方法

語法結構:

@classmethod

def 類方法名(cls)

:pass

類方法需要用@classmethod修飾來標識,告訴

直譯器這是乙個類方法,類方法的第乙個引數應該是cls

class

tool

(object):

count =

0def

__init__

(self, name)

: self.name = name

tool.count +=1

@classmethod

defshow_tool_count

(cls)

:print

(cls.count)

建立工具物件

tool_1 = tool(

"斧頭"

)tool.show_tool_count(

)

6、靜態方法,

語法如下:

@staticmethod

def 靜態方法():

pass

class

dog(

object):

@staticmethod

defrun()

:# 不訪問例項屬性/類屬性

print

("跑步。。。。"

)#通過類名.呼叫靜態方法-不需要建立物件

dog.run(

)

7、運用類方法、靜態方式、例項方法的例子:

設計乙個game類

類屬性:歷史最高分

例項屬性:玩家姓名

靜態方法:顯示遊戲幫助資訊

類方法:顯示歷史最高分

例項方法:開始當前玩家的遊戲

class

game

(object):

#歷史最高分

top_score =

0def

__init__

(self, player_name)

: self.player_name = player_name

@staticmethod

defshow_help()

:print

("幫助資訊:讓殭屍進入大門")

@classmethod

defshow_top_score

(cls)

:print

("歷史記錄:%d"

%cls.top_score)

defstart_game

(self)

:print

("%s開始遊戲了..."

%self.player_name)

# 檢視遊戲的幫助資訊

game.show_help(

)# 檢視歷史最高分

game.show_top_score(

)# 建立遊戲物件

game = game(

"小明"

)game.start_game(

)

python 物件導向那些事 2

1 乙個物件的屬性可以是另外乙個類建立的物件。class gun def init self,model self.model model self.bullet count 0def add bullet self,count self.bullet count count defshoot se...

Python之物件導向的那些事

物件導向 需要有意義的物件導向的 不是有了類就是物件導向核心 類 物件 例項化方法和函式的區別 方法 設計層面 函式 程式運形,過程式一種稱謂 物件 物件是現實世界或者思維世界中的實體在計算機中的反映,它將資料以及這些資料上的操作封裝在一起 類 一類事物的統稱,物件是類具體化的產物,也就是例項化 不...

物件導向的那些事

繼承 將多個類中具有的同種功能和同種變數抽離出來讓其他類與這個類產生聯絡 多型 事物在不同的時候有不同的表現形式,也就是可以將不同的子類當成父類來看比如你現在是兒子但是在你兒子眼裡你就是父親 繼承 1 子類能夠繼承父類的絕大多數屬性,但是父類私有的不能被繼承,final修飾的方法不能被子類重寫,被f...