类方法的存在即为了修改类属性。python
代码示例:3d
class People(object): address = "山东" #类属性 #实例方法 def __init__(self): self.name = "xiaowang" #实例属性 self.age = 20 #实例属性 #类方法 @classmethod def setNewAddress(cls): cls.address = "内蒙古" #能够经过类名的方式来获取类属性 #可是不能经过类名获取实例属性 #类对象,能够直接调用类属性,也能够直接调用类方法 #可是类对象,不容许调用实例属性,而且也不容许调用实例方法 #若是是一个实例对象 #它能够获取实例属性和类属性的值,可是只能修改实例属性,不能修改类属性 #他还能够调用实例方法和类方法 xiaoming = People() xiaoming.setNewAddress() print(People.address) 执行结果: 内蒙古
代码示例2:对象
class Animal(object): def __init__(self, name = "动物", color = "白色"): self.name = name self.color = color class Horse(Animal): horseNum = 0 #类属性 def __init__(self, name, color = ""): super().__init__(name) self.setHorseNum() @classmethod def setHorseNum(cls): cls.horseNum += 1 bailongma = Horse("白龙马") print(bailongma.name) print(bailongma.color) print(bailongma.horseNum) chituma = Horse("赤兔马") print(chituma.name) print(chituma.color) print(chituma.horseNum) 执行结果: 白龙马 白色 1 赤兔马 白色 2