Python - 面向對象編程 - 實戰(5)


前言

主要是針對靜態方法、類方法、實例方法、類屬性、實例屬性的混合實戰

 

需求

設計一個 Game 類

屬性

  • 定義一個類屬性 top_score 記錄游戲的歷史最高分,這個屬性很明顯只跟游戲有關,跟實例對象無關,所以定義為類屬性
  • 定義一個實例屬性 player_name 記錄當前游戲的玩家姓名

方法

  • 靜態方法:showHelp,顯示游戲幫助信息,這個方法不需要訪問類屬性,也不需要訪問實例屬性,所以可以定義為靜態方法
  • 類方法:showTopScore,顯示歷史最高分,只需要訪問類屬性,所以定義為類方法
  • 實例方法:startGame,開始游戲,由實例對象調用

主程序

  1. 查看幫助信息
  2. 查看歷史最高分
  3. 創建游戲對象,開始游戲
  4. 更新歷史最高分

 

類圖

 

實際代碼

class Game:
    # 歷史最高分
    __top_score = 0

    def __init__(self, player_name):
        # 定義實例屬性
        self.__player_name = player_name

    @staticmethod
    def showHelp():
        print("游戲幫助...help")

    @classmethod
    def showTopScore(cls):
        return cls.__top_score

    @classmethod
    def setTopScore(cls, score):
        cls.__top_score = score

    def startGame(self, score):
        # 1、玩游戲
        print(f"{self.__player_name} 開始玩游戲了...")

        # 2、拿到分數,更新最高分
        if score > self.showTopScore():
            self.setTopScore(score)


player1 = Game("小菠蘿")
# 1、玩家查看游戲幫助
player1.showHelp()
# 2、查看游戲最高分
print(player1.showTopScore())
# 3、開始游戲
player1.startGame(90)
# 4、查看游戲最高分
print(player1.showTopScore())


# 輸出結果
游戲幫助...help
0
小菠蘿 開始玩游戲了...
90

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM