从组合到鸭子模块

组合:

什么是组合

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

为什么要使用组合

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

封装:

什么是封装?

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

为什么要封装?

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

访问限制机制:

什么是访问限制机制?

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

访问限制机制的目的?

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

property:

什么是property

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

为什么要用property

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

如何使用property

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

多态:

什么是多态?

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

多态的目的:

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

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

抽象类的目的:

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

鸭子类型:

- 什么是鸭子类型?

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

- 继承:

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

- 鸭子类型:

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

原文地址:https://www.cnblogs.com/jimGraymane/p/11657211.html