首页 > 代码库 > 类方法与类属性

类方法与类属性

类方法的存在即为了修改类属性。

技术分享

代码示例:

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

  

类方法与类属性