您的位置:首页 > 编程语言 > Python开发

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

2021-09-06 22:41 666 查看

前言

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

 

需求

设计一个 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

  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: