方法综合案例

案例提示:

  • 实例方法——方法内部需要访问实例属性
    实例方法内部可以使用 类名. 访问类属性
  • 类方法——方法内部 只 需要访问类属性(或调用类方法)
  • 静态方法——方法内部不需要访问实例属性和类属性
  • 当方法内部既需要访问 实例属性又需要访问 类属性,应该定义成什么方法?
    ——应该定义成实例方法。因为类只有一个,在实例方法内部可以使用 类名. 访问类属性

需求

  • 设计一个Game类
  • 属性:
    定义一个 类属性 top_score 记录游戏的历史最高分
    定义一个 实例属性 player_name 记录当前游戏玩家姓名
  • 方法:
    静态方法 show_help 显示游戏帮助信息
    类方法 show_top_score 显示历史最高分 实例方法 start_game 开始当前玩家的游戏
  • 主程序步骤:
    查看帮助信息
    查看历史最高分
    创建游戏对象,开始游戏
    图片说明

代码:

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()
# 创建游戏对象(实例方法)
player1 = Game("xiaoming")
player1.start_game()
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务