AI智能
改变未来

Python – 面向对象编程 – 实战(5)


前言

主要是针对静态方法、类方法、实例方法、类属性、实例属性的混合实战

需求

设计一个 Game 类

属性

  • 定义一个类属性 top_score 记录游戏的历史最高分,这个属性很明显只跟游戏有关,跟实例对象无关,所以定义为类属性
  • 定义一个实例属性 player_name 记录当前游戏的玩家姓名

方法

  • 静态方法:showHelp,显示游戏帮助信息,这个方法不需要访问类属性,也不需要访问实例属性,所以可以定义为静态方法
  • 类方法:showTopScore,显示历史最高分,只需要访问类属性,所以定义为类方法
  • 实例方法:startGame,开始游戏,由实例对象调用

主程序

  1. 查看帮助信息
  2. 查看历史最高分
  3. 创建游戏对象,开始游戏
  4. 更新历史最高分

类图

实际代码

class Game:# 历史最高分__top_score = 0def __init__(self, player_name):# 定义实例属性self.__player_name = player_name@staticmethoddef showHelp():print(\"游戏帮助...help\")@classmethoddef showTopScore(cls):return cls.__top_score@classmethoddef setTopScore(cls, score):cls.__top_score = scoredef 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())# 输出结果游戏帮助...help0小菠萝 开始玩游戏了...90

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python – 面向对象编程 – 实战(5)