• 面向对象


    类的定义

    1. class Person:

    2. class person():

    3. calss Person(object):

    成员变量与类变量

    类变量: 在类中定义,且在函数体外.称为类变量(静态成员变量)

    成员变量: 定义在函数中,并且绑定在self身上的变量,称为成员变量

    1. 使用类变量:

    普通的变量,定义在我们的类中,例如一些静态的不需要改变的变量,如 PI=3.1415926

    1. 使用成员变量:

    在创建对象的时候,需要初始化的变量,我们一般使用成员变量.

    1. 使用普通变量:

    若此变量只是计算产生的中间量,后续不需要使用的情况下,可以使用普通变量.

    类变量与成员变量区别:

    1. 位置不同

    2. 出现的时间不同, 类变量定义类的时候就产生了,成员变量实例化对象时才产生.

    3. 调用方式不同,类变量可通过类名来调用,也能使用对象调用, 成员变量只能通过对象来调用.

    4. 优先级不同,当类变量与成员变量同时存在的时候,使用对象来进行调用,优先调用成员变量

    5. 若要更改类变量,需要用类名来调用类变量重新赋值, 用对象调用类变量赋值时,只是相当于给对象添加了一个额外属性

    动态的给类添加属性以及方法

    1. 动态的给对象绑定的属性以及方法,只作用于当前对象,对其他对象不起作用.

    2. 动态的给类绑定的属性和方法,作用于类中所有对象.a.remove(7)

    3. 当不想随意给对象添加一些属性时,可以使用 slots 属性,这个属性是一个元组,我们可以将需要添加的属性的属性名一一列举写到元组中.

    4. 使用slots设置的类只对当前类的实力起作用,对子类不起作用.

     

    0

    何时使用成员方法,类方法,,静态方法?

    1. 当写在类中的函数跟self有关系的时候,即使用了成员变量或者成员方法时,必须将此方法写为成员方法;

    2. 当写在类中的函数,跟self没关系,即没有使用成员变量和成员方法时,但又和类变量或者类方法有关系(在此函数中,可能使用了类变量或者类方法),这时可以将其声明为类方法;

    3. 当写在类中的函数,既跟self没关系,跟类也没关系,即没有使用成员变量也没有使用类变量,没使用类方法和成员方法,静态方法也没使用,此时我们就可以将其声明为静态方法.

    黑魔法 访问私有变量

    被私有化的属性不能直接访问的原因: python解释器解释被私有化的属性解释成: _类名__属性名, 当我们直接访问时就会出错;但是我们可以通过python解释的 _类名__属性名 来进行访问,但是不建议这么做,因为不同解释器解释出来的变量名可能不同.

    语法糖(@property) 访问私有变量

    作用:将函数作为属性来进行调用

    在getter的方法中添加@property

    在setter的方法中添加@属性名(该函数名).setter

    注意:两个加装饰器的方法名要相同

     

    继承

    当子类中有特殊的属性时,需要手动调用一下父类的构造方法

    多继承

    1. 若同时继承多个父类的时候,需要手动初始化父类的构造函数

    2. 当父类中的函数名出现相同的时候,优先选择写在继承元组前面的那个

    3. 一个子类可以有多个父类,一个父类也可以有多个子类.

    4.  

     

     

     

  • 相关阅读:
    PHP入门03 -- 数组与数据结构
    PHP入门02 -- 函数
    PHP入门01 -- 基本语法
    node文章
    Mongodb08
    Mongodb07
    ISO处理jq事件
    map
    Django自定义模板
    JS this指向
  • 原文地址:https://www.cnblogs.com/Deaseyy/p/10859738.html
Copyright © 2020-2023  润新知