zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python 类方法综合案例

2023-09-11 14:16:46 时间

需求:
1)、设计一个 Game 类
2)、属性:
定义一个 类属性 top_score 记录游戏的 历史最高分;
定义一个 实例属性 player_name 记录 当前游戏的玩家姓名;
3)、方法:
静态方法 show_help 显示游戏规则的信息;
类方法 show_top_score 显示历史最高分;
实例方法 start_game 开始当前玩家的游戏;
4)、主程序步骤:
(a)、查看帮助信息;
(b)、查看历史最高分;
(c)、创建游戏对象、开始游戏;
在这里插入图片描述
案例小结
1、实例方法 — 方法内部需要访问 案例属性;
实例方法 内部可以使用 类名,访问类属性;
2、类方法 — 方法内部 只需要访问类属性;
3、静态方法 — 方法内部,不需要访问 实例属性 和类属性;

提问:
如果方法内部即需要访问 实例属性,又需要访问 类属性,应该定义成什么方法?

class Game(object):

    # 历史最高
    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)

# 查看游戏的帮助信息
Game.show_help()
# 查看历史最高分
Game.show_top_score()
# 创建游戏对象
game = Game("小明")

game.show_help()