类与对象有更确切的名字:类对象与实例对象
类属性 实例属性
- 类属性:类属性属于类对象,并且为多个实例对象所共享。
- 实例属性:和具体的某个实例对象有关,且不为其他实例对象所共享。
基于类属性的实例对象计数方法
class Tool(object):
#类属性
num = 0
#实例方法
def __init__(self,new_name):
self.name = new_name #实例属性
Tool.num += 1 #类属性计数,每新建一个对象记一次数
tool1 = Tool('铁锹')
tool2 = Tool('工兵')
tool3 = Tool('水桶')
print(Tool.num)
>>> 3
类方法、实例方法、静态方法
方法为修改属性而存在。
- 为了节省内存,所有实例方法都指向于类对象地址,不做单独存储,随取随用。
class Game(object):
#类属性
num = 0
#实例方法
def __init__(self):
self.name = '扫雷' #实例属性
#类方法
@classmethod
def add_num(cls):
cls.num = 100
#静态方法
@staticmethod
def print_menu():
print('-------------------')
print('-----开始游戏-----')
print('-----结束游戏-----')
print('-------------------')
game = Game()
#Game.add_num()
game.add_num()
#类方法既可以通过类名直接调用,也可由其子类调用。
print(Game.num)
#Game.print_menu()
game.print_menu()
#静态方法既可以通过类名直接调用,也可由其子类调用。
>>>
100
-------------------
-----开始游戏-----
-----结束游戏-----
-------------------