類方法的存在即爲了修改類屬性。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