- 查看帮助信息
- 查看历史最高分
- 创建游戏对象,开始游戏
游戏说明:
- 设计一个Game类
- 属性
定义一类属性top_score记录游戏的历史最高分(与这个游戏有关,每次游戏的时候与最高分无关)
定义一个实例属性player_name记录当前游戏玩家的玩家姓名
- 方法
静态方法show_help显示游戏帮助信息(既不需要访问类属性也不需要访问实例属性)
类方法show_top_score显示历史最高分(访问类属性)
实例方法start_game开始当前玩家的游戏
class Game(object):
# 1.历史最高分
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
# 1.查看帮助信息
Game.show_help()
# 2.查看历史最高分
Game.show_top_score()
# 3.创建游戏对象,开始游戏
game = Game('小明')
game.start_game()
案例小结
- 实例方法:方法内部需要访问的实例属性。 实例方法内部可以使用 类名. 访问属性
- 类方法:方法内部只需要访问类属性
- 静态方法:方法内部不需要访问实例属性和类属性
思考问题:如果方法内部,既要访问实例属性,有要访问类属性,应该定义什么方法?
答案:应该定义实例方法。因为类只有一个,在实例方法内部可以使用 类名. 访问类属性