22:再说面向对象

1、回顾面向对象

面向对象:面向对象是一种编程思想,是一种对面向过程编程方式的补充和完善的解决思路,形成了一种新的编程思想,通过类型和对象之间的相互协作完整整体功能的模式!

2、面向对象的特征

封装、继承、多态

  • 封装特征

    1、封装数据
    2、封装方法
    3、封装属性:属性私有化,提供get/set、方法,添加限制条件
  • 继承特征:

    1、子类、父类:子类继承父类,实现大码的复用和功能的扩展
    2、子类访问父类的方法和属性:父类类名.方法、super()关键字
    3、多继承机制:体现的是,某对象可以是多种类型;父类中出现了重名属性、方法的情况【广度优先搜索、深度优先搜索】
    python3[新式类]-深度搜索
    python2[新式类(深度搜索)|经典类(广度搜索)]
    4、继承信息的查询:
   __base__:查询当前类继承的直接父类
   __bases__:查询当前继承的所有父类
   __class__:查看当前类的类型数据
   __subclasses__:查看当前类型的所有子类
  • 多态特征:

    1、角色多态:多继承体现的一个对象可以同时属于多个类型[多继承继承的多个类型]
    在代码运行过程中,根据不同的使用场景,当前对象调用继承的不同类型的方法执行具体行为操作的过程!
    2、行为多态:方法重写~子类重写父类中已经存在的方法,在代码运行过程中,根据子类是否重写了父类的方法,动态的确定执行父类/子类中的方法!

3、类型和对象

类型都有自己的特征
1、面向对象:一切皆对象->python中所有的东西都是由一个超级原始对象衍生出来的!
自己定义的类型--都会继承原始的这个对象~~继承该对象的属性和行为!
自定义类型,继承的[双划线开头结尾的属性和函数]:魔法属性、魔法方法

  • 魔法属性/方法:已经具备了一定功能的固有的属性和方法!
  • 常见的魔法属性和方法
    (1)、 输出
      (1)__str__():输出当前对象,在内存中的地址 十六进制表示的字符串
      (2)__repr__:用于在**交互模式**下,直接操作变量时~获取变量数据的定义!

(2)、比较

__gt__():grant than大于
__lt__(): less than小于
__ge__(): grant or equals大于或者等于
__le__(): less or equals小于或者等于
__ne__(): not equals 不等于
__eq__(): equals 等于

(3)运算

__add__():加法
__sub__():减法
__mul__():乘法
__truediv__():除法
__floordiv__():整除

你可能感兴趣的:(22:再说面向对象)