僅用學習參考使用物件導向開發,第 1 步是設計類使用類名()建立物件,建立物件的動作有兩步:
物件建立後,記憶體中就有了乙個物件的實實在在的存在 ——例項
因此,通常也會把:
建立出來的物件叫做類的例項建立物件的動作叫做例項化物件的屬性叫做例項屬性物件呼叫的方法叫做例項方法
在程式執行時:
物件各自擁有自己的例項屬性
呼叫物件方法,可以通過self.
結論
python
中一切皆物件:示例需求
# 使用賦值語句,定義類屬性,記錄建立工具物件的總數
count = 0
def __init__(self, name):
self.name = name
# 針對類屬性做乙個計數+1
tool.count += 1
# 建立工具物件
tool1 = tool("斧頭")
tool2 = tool("榔頭")
tool3 = tool("鐵鍬")
# 知道使用 tool 類到底建立了多少個物件?
print("現在建立了 %d 個工具" % tool.count)
在
python
中屬性的獲取存在乙個向上查詢機制類名.類屬性物件.類屬性(不推薦)注意
類方法就是針對類物件定義的方法
語法如下
通過類名.呼叫類方法,呼叫方法時,不需要傳遞@classmethod
def 類方法名(cls):
pass
cls
引數在方法內部
示例需求
需求—— 在類封裝乙個
show_tool_count
的類方法,輸出使用當前這個類,建立的物件個數"""顯示工具物件的總數"""
print("工具物件的總數 %d" % cls.count)
在類方法內部,可以直接使用這個時候,可以把這個方法封裝成乙個靜態方法語法如下cls
訪問類屬性或者呼叫類方法@staticmethod
def 靜態方法名():
pass
執行如下:class dog(object):
# 狗物件計數
dog_count = 0
@staticmethod
def run():
# 不需要訪問例項屬性也不需要訪問類屬性的方法
print("狗在跑...")
def __init__(self, name):
self.name = name
設計乙個in [2]: class dog(object):
...: dog_count = 0
...: @staticmethod
...: def run():
...: print("狗在跑")
...: def __init__(self,name):
...: self.name = name
...:
in [4]: dog1 = dog("小白")
in [6]: dog1.run()
狗在跑in [7]:
game
類屬性:方法:
主程式步驟
案例小結
例項方法—— 方法內部需要訪問例項屬性
類方法—— 方法內部只需要訪問類屬性
靜態方法—— 方法內部,不需要訪問例項屬性和類屬性
提問
如果方法內部 即需要訪問例項屬性,又需要訪問類屬性,應該定義成什麼方法?
答案
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
# 1. 檢視遊戲幫助
game.show_help()
# 2. 檢視遊戲最高分
game.show_top_score()
# 3. 建立遊戲物件,開始遊戲
game = game("小明")
game.start_game()
# 4. 遊戲結束,檢視遊戲最高分
python 之 類屬性和類方法
使用面相物件開發,第 1 步是設計類使用類名 建立物件,建立物件的動作有兩步 物件建立後,記憶體中就有了乙個物件的實實在在的存在 例項 因此,通常也會把 建立出來的物件叫做類的例項建立物件的動作叫做例項化物件的屬性叫做例項屬性物件呼叫的方法叫做例項方法 在程式執行時 物件各自擁有自己的例項屬性呼叫物...
Python類屬性和類方法詳解
class dog tooth 10 類屬性就是類物件所有的屬性,他被該類的所有例項所共有 類屬性可以通過類物件或類例項進行訪問 類屬性為全類所共有,僅佔乙份記憶體 w1 dog w2 dog print w1.tooth print w2.tooth print dog.tooth 結果為 cla...
類屬性和類方法
當乙個屬性 方法被static修飾的時候,就叫做類屬性 類方法,又叫做靜態屬性 靜態方法 沒有被static修飾的屬性,就叫物件屬性 物件方法,又叫例項屬性 例項方法和非靜態屬性 非靜態方法。當乙個屬性被宣告成類屬性,那麼所有的物件,都共享乙個值,所有物件都可以修改這個值,一經修改前面的值將會被丟棄...