类方法的存在即为了修改类属性。
代码示例:
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
时间: 2024-10-16 17:01:19