Python学习之路_day_25(面向对象之封装/多态/组合)

一、组合

  1. 什么是组合:

组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象。

2. 为何要用组合

    通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以间接地将两个类关联/整合/组合到一起

从而减少类与类之间代码冗余

二、多态:

1. 什么是多态

    多态指的是同一种/类事物的不同形态

2. 为何要用多态

    多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象

多态性的精髓:统一

python崇尚鸭子类型

三、封装:

1. 什么是封装

    装:往容器/名称空间里存入名字

    封:代表将存放于名称空间中的名字给藏起来,这种隐藏对外不对内

2. 为何要封装

    【封装】

         隐藏对象的属性和实现细节,仅对外提供公共访问方式。

【好处】 

1. 将变化隔离; 

2. 便于使用;

3. 提高复用性; 

4. 提高安全性;

【封装原则】

      1. 将不需要对外提供的内容都隐藏起来;

      2. 把属性都隐藏,提供公共方法对其访问。

3. 如何封装

    在类内定义的属性前加__开头(没有__结果)

    总结:

        1. __开头的属性实现的隐藏仅仅只是一种语法意义上的变形,并不会真的限制类外部的访问

        2. 该变形操作只在类定义阶段检测语法时发生一次,类定义阶段之后新增的__开头的属性并不会变形

        3. 如果父类不想让子类覆盖自己的属性,可以在属性前加__开头

四、property

property装饰器是用来将类内的函数属性伪装成数据属性

 

原文地址:https://www.cnblogs.com/zjh009/p/9511652.html