- 查看幫助信息
- 查看歷史最高分
- 創建遊戲對象,開始遊戲
遊戲說明:
- 設計一個Game類
- 屬性
定義一類屬性top_score記錄遊戲的歷史最高分(與這個遊戲有關,每次遊戲的時候與最高分無關)
定義一個實例屬性player_name記錄當前遊戲玩家的玩家姓名
- 方法
靜態方法show_help顯示遊戲幫助信息(既不需要訪問類屬性也不需要訪問實例屬性)
類方法show_top_score顯示歷史最高分(訪問類屬性)
實例方法start_game開始當前玩家的遊戲
class Game(object):
# 1.歷史最高分
top_score = 0
# 實例屬性在初始化方法內部定義
def __init__(self, player_name):
self.player_name = player_name
@staticmethod
def show_help():
print '幫助信息:$@$@$@#$@'
@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.創建遊戲對象,開始遊戲
game = Game('小明')
game.start_game()
案例小結
- 實例方法:方法內部需要訪問的實例屬性。 實例方法內部可以使用 類名. 訪問屬性
- 類方法:方法內部只需要訪問類屬性
- 靜態方法:方法內部不需要訪問實例屬性和類屬性
思考問題:如果方法內部,既要訪問實例屬性,有要訪問類屬性,應該定義什麼方法?
答案:應該定義實例方法。因爲類只有一個,在實例方法內部可以使用 類名. 訪問類屬性