案例提示:
- 实例方法——方法内部需要访问实例属性
实例方法内部可以使用 类名. 访问类属性 - 类方法——方法内部 只 需要访问类属性(或调用类方法)
- 静态方法——方法内部不需要访问实例属性和类属性
- 当方法内部既需要访问 实例属性又需要访问 类属性,应该定义成什么方法?
——应该定义成实例方法。因为类只有一个,在实例方法内部可以使用 类名. 访问类属性
需求
- 设计一个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()


京公网安备 11010502036488号