文章目录
1. 类属性和类方法
类属性:针对类对象定义的属性 使用赋值语句在class关键字下可以定义类属性
类方法:针对类对象定义的方法 在类方法内部可以直接访问类属性或者调用其他的类方法
它们都是共有的,在同一个类中是共享的。
举例:
统计玩具类总共创建的对象的个数
class Toy(object):
count = 0
def __init__(self,name):
self.name = name
Toy.count += 1
#定义类方法
@classmethod
def show_toy_count(cls):
print('玩具对象的数量 %d'%(cls.count))
toy1=Toy('taidi')
toy2 = Toy('ailis')
Toy.show_toy_count()
结果是:
玩具对象的数量 2
2. 静态方法
静态方法:通过类名调用静态方法,不需要创建对象,直接就可以调用
不需要访问实例属性和类属性就可以用静态方法。
class Dog(object):
@staticmethod
def run():
print('小狗要跑')
#类名.方法即可,不需要创建对象
Dog.run()
结果是:
小狗要跑
综合:
**class Game(object):
top_score = 0
def __init__(self,player_name):
self.play_name = player_name
@staticmethod
def show_help():
print('帮助信息')
@classmethod
def show_top_score(cls):
print('历史记录%d'%cls.top_score)
def stat_game(self):
print('%s start'%self.play_name)
Game.show_help()
#类方法的调用:类名.函数名
Game.show_top_score()
game=Game('XIAO')
game.show_top_score()
game.stat_game()**
结果是:
帮助信息
历史记录0
历史记录0
XIAO start