一:组合:

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

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

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

二:多态与多态性

什么是多态:多态指的是同一种/类事物的不同形态。

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

父类只是用来建立规范的,不能用来实例化的,更无需实现内部的方法

三:封装

什么是封装:

装:往容器/名称空间里存入名字
                             封:代表将存放于名称空间中的名字给藏起来,这种隐藏对外不对内

为何要封装:

封装数据属性:将数据属性隐藏起来,类外就无法直接操作属性,需要类内开辟一个接口

来外部的使用可以间接的操作属性,可以在接口内定义任意的控制逻辑,从而严格控制使用对属性的操作

封装函数属性:隔离复杂度

如何封装:

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

总结:

1. __开头的属性实现的隐藏仅仅只是一种语法意义上的变形,并不会真的限制类外部的访问
                     2. 该变形操作只在类定义阶段检测语法时发生一次,类定义阶段之后新增的__开头的属性并不会变形
                     3. 如果父类不想让子类覆盖自己的属性,可以在属性前加__开头

四:类中函数的装饰器之一:property

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

例:

组合,多态与多态性,封装以及property装饰器介绍的更多相关文章

  1. 面向对象(三)——组合、多态、封装、property装饰器

    组合.多态.封装.property装饰器 一.组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo(): pass class Bar(): pas ...

  2. Python 面向对象 组合-多态与多态性-封装-property

    面向对象-组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo: xxx = 111 class Bar: yyy = 222 obj = Foo( ...

  3. python面向对象:组合、封装、property装饰器、多态

    一.组合二.封装三.property装饰器四.多态 一.组合 ''' 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之为组合 2. 为何用组合 组合也是用来解决类与类代码冗余的问题 3. ...

  4. python面向编程:类的组合、封装、property装饰器、多态

    一.组合 二.封装 三.propert装饰器 四.多态 一.组合 ''' 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之为组合 2. 为何用组合 组合也是用来解决类与类代码冗余的问题 ...

  5. 面向对象(三)--多态、封装、property装饰器

    一.多态与多态性 1.什么是多态 多态指的是同一种类/事物的不同形态 class Animal: def speak(self): pass class People(Animal): def spe ...

  6. 面向对象之封装 及@property装饰器使用

    目录 封装 1.封装的定义 2.封装的目的: 3.封装的三种方式 4.封装的优点 5.访问限制(封装) @property 装饰器 属性property底层实现 封装 1.封装的定义 将复杂的丑陋的, ...

  7. 初识面向对象-封装、property装饰器、staticmathod(静态的方法)、classmethod(类方法) (五)

    封装 # class Room:# def __init__(self,name,length,width):# self.__name = name# self.__length = length# ...

  8. 面向对象之组合、封装、多态、property装饰器

    概要: 组合 封装 property装饰器 多态 Python推崇鸭子类型:解耦合,统一标准(不用继承) 1. 组合 继承:会传递给子类强制属性 组合:解耦合,减少占用内存.如:正常继承,如果一个班级 ...

  9. 面向对象之 组合 封装 多态 property 装饰器

    1.组合 什么是组合? 一个对象的属性是来自另一个类的对象,称之为组合 为什么要用组合 组合也是用来解决类与类代码冗余的问题 3.如何用组合 # obj1.xxx=obj2''''''# class ...

随机推荐

  1. IDEA多个服务打断点 各服务乱窜的问题

    Setting --> Build, Execution, Deployment --> Debugger 选中即可

  2. elementUI中table组件会出现空白部分

    先上图: 造成原因: width全部都写死了,(注释:不要全部都写死width,没写width的会自动分配宽度)  

  3. 剑指offer——python【第2题】替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”. 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 理解 很容易想到用pytho ...

  4. thinkphp 判断有没有登录 没有登录就自动给他打到登录去

    html 代码 <a href="javascript:;" class="user_uid"> <i class="iconfon ...

  5. 内层DIV超出后,出现滚动条问题

    使用:overflowy:'unset'属性,可以解决

  6. Storm UI说明

    一.Storm ui 首页主要分为4块: Cluster Summary,Topology summary,Supervisor summary,Nimbus Configuration Cluste ...

  7. dict()的另一种用法

    先了解两个内容: 定义字典的两种方法: d1 = { ‘name’ :‘zzl’} #方法一 d2 = dict( name = 'zzl' ) #方法二 2. __dict__()方法不记录类的属性 ...

  8. 【学习笔记】Tensorflow+Inception-v3训练自己的数据

    导读 喵喵的,一个大坑.本文分为吐槽和干货两部分. 一.吐槽 大周末的,被导师扣下加班,嗨气,谁叫本狗子太弱鸡呢,看起来很简单的任务倒腾了两天还没完,不扣你扣谁? 自己刚接到微调Inception-v ...

  9. ZooKeeper之service discovery

    Zookeeper整体介绍 ZooKeeper is a centralized service for maintaining configuration information, naming, ...

  10. Python中if __name__ == '__main__',__init__和self 的解析

    1.2.1 一个.py文件被其他.py文件引用 假设我们有一个const.py文件,内容如下: 现在,我们写一个用于计算圆面积的area.py文件,area.py文件需要用到const.py文件中的P ...