類方法與類屬性

類方法的存在即爲了修改類屬性。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
相關文章
相關標籤/搜索