【类属性】
类属性就是针对类对象定义的属性
使用赋值语句在 class 关键字下方可以定义类属性
类属性用于记录与这个类相关的特征
【类方法】
类方法就是针对类对象定义的方法
在类方法内部可以直接访问类属性或者调用其他的类方法
语法:@classmethd # 修饰符,告诉解释器这是一个类方法
def 类方法名(cls): # 由哪个类调用的方法,cls就是哪一个类的引用,同 self
通过 类名.调用类方法,不需要传递 cls 参数
在类方法内部,可以通过 cls. 访问类的属性,也可以通过 cls. 调用其他的类方法
【静态方法】
在开发时,如果需要在这个类中封装方法,这个方法:
- 既不需要访问实例属性,或者调用实例方法
- 也不需要访问类属性,或者调用类方法
这个时候,可以把这个方法封装成一个静态方法
语法:@staticmethod
def 静态方法名():
静态方法需要用修饰符(器),@staticmethod 来标识
通过 类名. 调用静态方法
class Tool(object):
# 使用赋值语句定义类属性,记录所有工具对象的数量
count = 0
# 定义一个类方法,而不是实例方法
@classmethod
def show_tool_count(cls):
# cls.count += 1
# cls.__init__()
print("工具对象的数量%d" % cls.count)
def __init__(self, name):
self.name = name
# 让类属性的值+1
Tool.count += 1
# 创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("榔头")
# 调用类方法
Tool.show_tool_count()
class Game(object):
# 类属性,历史最高分
top_score = 0
def __init__(self, player_name):
# 实例属性 play_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.创建游戏对象
gamer = Game("小明")
gamer.start_game()
从现在开始,种下梦想中的参天大树