zoukankan      html  css  js  c++  java
  • 从组合到鸭子模块

    组合:

    什么是组合

    ​ 组合指的是一个对象中的属性,是另一个对象.

    为什么要使用组合

    		组合目的和继承一样, 为了减少代码冗余.
    

    封装:

    什么是封装?

    封装指的是把一堆属性(特征与技能)封装到一个对象中.
    存数据的目的是为了取, 对象可以"."的方式获取属性.

    为什么要封装?

    封装的目的为了方便存取,可以通过对象.属性的方式获取属性.

    访问限制机制:

    什么是访问限制机制?

    在类内部定义, 凡是以__开头的数据属性与方法属性,都会被python内部隐藏起来,让外部不能"直接"访问类内部的__开头的属性.

    访问限制机制的目的?

    一堆隐私的属性与不能被外部轻易访问的属性, 可以隐藏起来,不被外部直接调用.

    property:

    什么是property

    python内置的装饰器, 主要是给类内部的方法使用.

    为什么要用property

    在对象调用某个方法时,将对象.方法()变成对象.方法(看起来想一个普通的数据属性)
    obj.bmi() == obj.bmi

    如何使用property

    @property
    def 类内部的方法(self):

    多态:

    什么是多态?

    多态指的是同一种事物的多种形态.

    多态的目的:

    多态的目的是为了, 让多种不同类型的对象, 在使用相同功能的情况下,调用同一个名字的方法名.
    父类: 定义一套统一的标准.
    子类: 遵循父类统一的标准.

    • 如何实现:
      • 继承父类
      • 继承抽象类
      • 鸭子类型

    抽象类的目的:

    ​ 强制子类必须遵循父类的一套标准.

    鸭子类型:

    - 什么是鸭子类型?

    ​ 在不知道当前对象是何物的情况下,但是你长得像鸭子,那么你就是鸭子类型.

    - 继承:

    ​ 耦合性太高,程序的可扩展性差

    - 鸭子类型:

    ​ 耦合度低,程序的可扩展性强

  • 相关阅读:
    【转】排序总结(总结的非常好)
    [转]C#中使用指针实现高效比较字符串的小技巧
    高斯消元法
    排序算法性能和使用场景总结
    斐波那契数列Log(n)算法
    C#部分方法定义
    杂项记录
    C#指针复习示例zz
    【转】斐波那契数列算法分析
    【转】矩阵乘法
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11657211.html
Copyright © 2011-2022 走看看