• Python——面向对象,类属性,静态方法,类方法


    一、类属性

    """
    类属性(Class attribute
    定义:类对象所拥有的属性,被该类的所有实列对象所共有
    类对象和实例对象皆可访问类属性
    应用条件:记录的某项数据始终保持一致,可将其定义为类属性
    对比:类属性为全类共有,创建多个对象,类属性只需一份内存空间;
    实例属性 要求每个对象都要单独开辟一片内存空间

    修改类属性: 类属性只能由类对象来访问修改,实例对象无法修改
    """


    class Dog(object):
    tooth = 10


    def main():
    dah = Dog()
    print(Dog.tooth) # 10
    print(dah.tooth) # 10

    dah.tooth = 12
    print(Dog.tooth) # 10
    Dog.tooth = 12
    print(Dog.tooth) # 12
    print(dah.tooth) # 12


    if __name__ == '__main__':
    main()

    二、类方法,静态方法
    """
    类方法(Class method):
    特点:需用装饰器 @classmethod 来标识类方法,
    第一个参数必须为类对象,默认 cls 为第一个参数
    应用:方法中需使用类对象(访问私有类属性),则定义类方法
    类方法一般与类属性配合使用
    """


    class Dog(object):
    __tooth = 10

    @classmethod
    def get_tooth(cls):
    return cls.__tooth


    def main1():
    dah = Dog()
    t = dah.get_tooth()
    print(t)


    """
    静态方法(Static method
    特点:通过装饰器 @staticmethod 来修饰,
    不需要传递类对象或者实例对象
    形参没有 self/cls
    可通过实例对象和类对象去访问
    应用:取消不需要的参数传递,
    减少不必要的内存占用和性能消耗
    """


    class Dog2(object):
    @staticmethod
    def info_print():
    print('这是静态方法。')


    def main2():
    da = Dog2()
    da.info_print()
    Dog2.info_print()


    if __name__ == '__main__':
    main2()


  • 相关阅读:
    IO复用(较详细)
    关于CGI 和 PHP-FPM需要弄清的
    php内核一些常识
    python搭建web服务
    瓶颈分析
    分布式系统
    vmdk多文件合成单文件并导入
    用户登录自动调用修改网络信息脚本
    strace命令用法
    使用Nginx反向代理Docker的Asp.Net Core项目的请求
  • 原文地址:https://www.cnblogs.com/kekefu/p/12346264.html
Copyright © 2020-2023  润新知