• python——类


    https://www.runoob.com/python/python-object.html
    http://c.biancheng.net/view/2283.html
    1.类体中、所有函数之外:此范围定义的变量,称为类属性或类变量;
    类变量为所有实例化对象共有,通过类名修改类变量的值,会影响所有的实例化对象
    类名.变量名 访问

    2.类体中,所有函数内部:以“self.变量名”的方式定义的变量,称为实例属性或实例变量;
    对象.变量名 访问

    3.类体中,所有函数内部:以“变量名=变量值”的方式定义的变量,称为局部变量。
    局部变量只能用于所在函数中,函数执行完成后,局部变量也会被销毁

    http://c.biancheng.net/view/4552.html
    https://www.cnblogs.com/shenh/p/13045035.html
    1.实例方法:
    参数第一个必须是self,代表对象/实例本身。
    只能用类的对象调用方法。
    不需要传递self参数,此时类的对象/实例 会隐式的传递到self。
    可以获取类属性、构造函数定义的变量

    构造函数也属于实例方法。
    类的构造方法,在一个对象被创建以后会首先被立即调用,来初始化新创建对象的状态,分配内存

    def __init__(self):
    
    • 1

    https://www.runoob.com/python/python-func-super.html
    如果在子类中需要父类的构造方法可选择:
    1)先super用来调用父类中的方法,然后自己的类中重写构造方法

    super(子类Class, self).xxx
    
    def __init__(self, name):
            super(Son, self).__init__(name)
    
    • 1
    • 2
    • 3
    • 4

    2)子类不重写父类的构造方法,即子类根本不写构造函数。实例化子类时,会自动调用父类定义的 init

    2.类方法:@classmethod
    参数第一个必须是cls,代表 类本身(注意不是实例本身,是有区别的)
    只能类.方法名直接调用。
    python 会自动将类本身传给 cls,所有这个参数也不需要我们传值。
    可以获取类属性,不能获取构造函数定义的变量

    3.静态方法:@staticmethod
    参数可以啥也没有
    两种调用方法都可以
    不需要使用任何类属性、构造函数定义的变量

  • 相关阅读:
    在网络层怎样防御入侵行为?
    如何编译java
    Gdb调试
    SingleTreePolicyInterpreter
    虚拟线程 - VirtualThread源码透视
    MySQL进阶-详解SQL实现事务的原理
    物联网和互联网医院小程序:如何实现医疗设备的远程监测和管理?
    jdk 线程池任务提交机制&&任务执行流程详解
    基于JAVA爱馨敬老院网站计算机毕业设计源码+系统+lw文档+部署
    XML有哪些概念?
  • 原文地址:https://blog.csdn.net/weixin_40906441/article/details/125995591