zoukankan      html  css  js  c++  java
  • 类方法与类属性

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

    代码示例:

    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
    

      

  • 相关阅读:
    解决Eclipse中文乱码
    C++中set用法回顾
    二分查找题目汇总
    给网卡配置多个IP地址(win/linux)
    route在windows与liunx下的使用区别
    eclipse 编程 c++ 快捷键
    Git、GitHub、GitLab三者之间的联系以及区别
    SQL语句优化
    《领域驱动设计的原则与实践》读书笔记(一)
    DotNet Core 介绍
  • 原文地址:https://www.cnblogs.com/Guido-admirers/p/6306712.html
Copyright © 2011-2022 走看看