类方法与类属性

Posted 橡皮头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类方法与类属性相关的知识,希望对你有一定的参考价值。

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

代码示例:

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

  

以上是关于类方法与类属性的主要内容,如果未能解决你的问题,请参考以下文章

python 类属性静态方法与类方法

javascript中实例方法与类方法的区别

类语法规则与类中的函数

python 继承与类属性的使用

类与类之间的关系

对象与类及方法构造