3 8類屬性和類方法

2022-09-13 23:18:30 字數 3396 閱讀 8498

使用面相物件開發,第 1 步是設計

使用類名()建立物件,建立物件的動作有兩步:

物件建立後,記憶體中就有了乙個物件的實實在在的存在 ——例項

因此,通常也會把:

建立出來的物件叫做例項

建立物件的動作叫做例項化

物件的屬性叫做例項屬性

物件呼叫的方法叫做例項方法

在程式執行時:

物件各自擁有自己的例項屬性

呼叫物件方法,可以通過self.

結論

python一切皆物件

示例需求

# 使用賦值語句,定義類屬性,記錄建立工具物件的總數

count = 0

def __init__(self, name):

self.name = name

# 針對類屬性做乙個計數+1

tool.count += 1

tool1 = tool("斧頭") tool2 = tool("榔頭") tool3 = tool("鐵鍬")

print("現在建立了 %d 個工具" % tool.count)

注意

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

語法如下

python @classmethod def 類方法名(cls): pass

通過類名.呼叫類方法,呼叫方法時,不需要傳遞cls引數

在方法內部

示例需求

python @classmethod def show_tool_count(cls): """顯示工具物件的總數""" print("工具物件的總數 %d" % cls.count)

在類方法內部,可以直接使用cls訪問類屬性或者呼叫類方法

這個時候,可以把這個方法封裝成乙個靜態方法語法如下python @staticmethod def 靜態方法名(): pass

```python class dog(object):

# 狗物件計數

dog_count = 0

@staticmethod

def run():

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

print("狗在跑...")

def __init__(self, name):

self.name = name

需求設計乙個game

屬性:方法:

主程式步驟

案例小結

例項方法—— 方法內部需要訪問例項屬性

類方法—— 方法內部需要訪問類屬性

靜態方法—— 方法內部,不需要訪問例項屬性類屬性

提問

如果方法內部 即需要訪問例項屬性,又需要訪問類屬性,應該定義成什麼方法?

答案

```python class game(object):

# 遊戲最高分,類屬性

top_score = 0

@staticmethod

def show_help():

print("幫助資訊:讓殭屍走進房間")

@classmethod

def show_top_score(cls):

print("遊戲最高分是 %d" % cls.top_score)

def __init__(self, player_name):

self.player_name = player_name

def start_game(self):

print("[%s] 開始遊戲..." % self.player_name)

# 使用類名.修改歷史最高分

game.top_score = 999

game.show_help()

game.showtopscore()

game = game("小明")

game.start_game()

game.showtopscore()

類屬性和類方法

當乙個屬性 方法被static修飾的時候,就叫做類屬性 類方法,又叫做靜態屬性 靜態方法 沒有被static修飾的屬性,就叫物件屬性 物件方法,又叫例項屬性 例項方法和非靜態屬性 非靜態方法。當乙個屬性被宣告成類屬性,那麼所有的物件,都共享乙個值,所有物件都可以修改這個值,一經修改前面的值將會被丟棄...

類屬性和類方法

使用面相物件開發,第 1 步是設計類使用類名 建立物件,建立物件的動作有兩步 物件建立後,記憶體中就有了乙個物件的實實在在的存在 例項 因此,通常也會把 建立出來的物件叫做類的例項建立物件的動作叫做例項化物件的屬性叫做例項屬性物件呼叫的方法叫做例項方法 在程式執行時 物件各自擁有自己的例項屬性呼叫物...

類屬性和類方法

1.使用物件導向開發,第一步是設計類 2.使用 類名 建立物件 建立物件的動作有兩布 在記憶體中物件分配空間 呼叫初始化方法 init 為物件初始化 3.物件建立後,記憶體中就有了乙個物件的實實在在的存在 例項 類是乙個特殊的物件 在程式執行時,類同樣會被載入到記憶體 在python中,類時乙個特殊...