如果需要學習類屬性、類方法和靜態(tài)方法可以看我之前的文章稀火。
一、案例需求
1.設計一個Game類
2.屬性:
(1) 定義一個類屬性top_score記錄游戲的歷史最高分
(2) 定義一個實例屬性player_name記錄當前游戲的玩家姓名
3.方法:
(1) 靜態(tài)方法show_help顯示游戲幫助信息
(2) 類方法show_top_score顯示歷史最高分
(3) 實例方法start_game開始當前玩家的游戲
4.主程序步驟
(1) 查看幫助信息
(2) 查看歷史最高分
(3) 創(chuàng)建游戲對象凰狞,開始游戲
分析:
需要設計一個游戲類篇裁,名字是Game赡若,在游戲類中定義兩個屬性和三個方法达布。
看第一個屬性歷史最高分,這個屬性和Game類有關而和每次游戲并沒有直接關系逾冬,所以定義成類屬性黍聂。第二個屬性身腻,當前玩家姓名产还,可能每次玩家不同所以定義成實例屬性脐区。
看方法牛隅,第一個顯示游戲幫助信息酌泰,這個只需要在游戲中顯示出提示的信息并不需要訪問類屬性和實例屬性,這種方法定義為靜態(tài)方法丈攒。第二個顯示歷史最高分授霸,歷史最高分是一個類屬性巡验,訪問類屬性的方法可以定義為類方法,第三個方法開始游戲碘耳,每次玩家開始游戲就需要調用這個方法显设,玩家姓名為實例屬性這個方法就直接定義為實例方法。
二辛辨、案例代碼
class Game():
# 類屬性:歷史最高分捕捂,初始為0(計數器)
top_score = 0
def __init__(self, player_name):
# 實例屬性
self.player_name = player_name
# 靜態(tài)方法
@staticmethod
def show_help():
print("幫助信息:怪獸已進入主戰(zhàn)區(qū)")
# 類方法
@classmethod
def show_top_score(cls):
print("歷史最高分記錄 %d" % cls.top_score)
# 實例方法
def start_game(self):
print("%s 玩家開始玩游戲了-----" % self.player_name)
# 1. 查看幫助信息
Game.show_help()
# 2. 查看歷史最高分
Game.show_top_score()
# 3.創(chuàng)建游戲對象瑟枫,開始游戲
game = Game("python自學網")
game.start_game()
執(zhí)行結果:
三、案例小結
1指攒、實例方法:方法內部需要訪問實例屬性
l 實例方法內部可以使用 類名. 訪問類屬性
2慷妙、類方法:方法內部只需要訪問類屬性
3、靜態(tài)方法:方法內部允悦,不需要訪問實例屬性和類屬性
提問:
如果方法內部即需要訪問實例屬性又需要訪問類屬性膝擂,應該定義成什么方法?
答案:
定義為實例方法隙弛,因為架馋,類只有一個,在實例方法內部可以使用 類名. 訪問類屬性
以上案例把學習過的類屬性全闷、類方法叉寂、靜態(tài)方法知識點揉合到一起使用了一下,仔細看并沒有什么技術含量总珠,只是簡單的使用來熟悉使用方法屏鳍。
更多相關Python練習題可以移步去Python自學網 ,從基礎入門免費課程開始局服,逐步深入學習python全棧體系課程孕蝉,適合新手入門到精通全棧開發(fā)。