
__init__ 为 对象初始化因此,通常也会把:
在程序执行时:
对象各自拥有自己的 实例属性
调用对象方法,可以通过
self.结论
需求
nameclass Tool(object):
# 使用赋值语句,定义类属性,记录创建工具对象的总数
count = 0
def __init__(self, name):
self.name = name
# 针对类属性做一个计数+1
Tool.count += 1
# 创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("榔头")
tool3 = Tool("铁锹")
# 知道使用 Tool 类到底创建了多少个对象?
print("现在创建了 %d 个工具" % Tool.count)class 关键字下方可以定义 类属性语法如下
@classmethod
def 类方法名(cls):
pass@classmethod 来标识,告诉解释器这是一个类方法cls 就是 哪一个类的引用self 类似clscls 参数cls. 访问类的属性cls. 调用其他的类方法示例需求
nameshow_tool_count 的类方法,输出使用当前这个类,创建的对象个数@classmethod
def show_tool_count(cls):
"""显示工具对象的总数"""
print("工具对象的总数 %d" % cls.count)语法如下
@staticmethod
def 静态方法名():
pass@staticmethod 来标识,告诉解释器这是一个静态方法class Dog(object):
# 狗对象计数
dog_count = 0
@staticmethod
def run():
# 不需要访问实例属性也不需要访问类属性的方法
print("狗在跑...")
def __init__(self, name):
self.name = nameGame 类top_score 记录游戏的 历史最高分player_name 记录 当前游戏的玩家姓名show_help 显示游戏帮助信息show_top_score 显示历史最高分start_game 开始当前玩家的游戏class Game(object):
# 游戏最高分,类属性
top_score = 0
@staticmethod
def show_help():
print("帮助信息:让僵尸走进房间")
@classmethod
def show_top_score(cls):
print("游戏最高分是 %d" % cls.top_score)
def __init__(self, player_name):
self.player_name = player_name
def start_game(self):
print("[%s] 开始游戏..." % self.player_name)
# 使用类名.修改历史最高分
Game.top_score = 999
# 1. 查看游戏帮助
Game.show_help()
# 2. 查看游戏最高分
Game.show_top_score()
# 3. 创建游戏对象,开始游戏
game = Game("小明")
game.start_game()
# 4. 游戏结束,查看游戏最高分
Game.show_top_score()