zoukankan      html  css  js  c++  java
  • Python

    前言

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

    需求

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

      

  • 相关阅读:
    vue安装过程
    es6 Array数组方法
    初始化 CSS 样式
    css新增伪类
    常浏览器兼容性问题与解决方案
    CSS3高级
    php总结
    php环境和使用方法
    [书籍介绍] Python网络数据采集_PDF电子书下载 高清 带索引书签目录_(美)Ryan Mitchell著_北京
    深度学习与计算机视觉应用实战课程
  • 原文地址:https://www.cnblogs.com/poloyy/p/15236113.html
Copyright © 2011-2022 走看看