10.11 组合,封装,多态

组合

什么是组合

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

为什么要使用组合

组合目的和继承一样,是为了减少重复代码

如何使用组合

class People:
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
class Teacher(People):
    def __init__(self,name,age,sex):
        super().__init__(name,age,sex)
class Student(People):
    def __init__(self,name,age,sex)
        People.__init__.get(name,age,sex)

封装

什么是封装

指把一堆属性封装到一个对象中.
存数据是为了取,对象可以以.的方式获取属性.

为什么要封装

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

如何封装

特征:变量→数据属性
技能:函数→方法属性
在类内部,定义一堆属性,通过对象.属性 = 属性值的方式调用

访问限制机制

什么是访问限制机制

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

访问限制机制的目的

一堆隐私的属性与不能被外部轻易访问的属性,可以隐藏起来,不被外部直接调用.
好处:对重要数据获取的逻辑更加严谨,进而保证了数据的安全.
接口:隐私属性可以通过封装一个接口,在接口内做业务逻辑的处理,再把数据返回给调用者.
注意:在python中,不会强制限制属性的访问,类内部__开头的属性,只是做了一种变形,若想直接访问,调用变形后的名字即可.

class Foo:
    __name = 'aaa' ## _类名__属性名(__name变形后的名字)

property

什么是property

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

为什么要用property

使用他的目的,是将类的内部的方法def 方法名()变成了def 方法
在对象调用某个方法时,将对象.方法()变成对象.方法看起来像一个很普通的数据属性.

如何使用property

直接@property使用

多态

什么是多态

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

多态的目的

多态也称之为多态性,在程序中继承就是多态的表现形式.
多态的目的是为了,让多种不同类型的对象,在使用相同的功能的情况下,调用同一个名字的方法.
父类:定义一套统一的标准.
之类:遵循父类统一的标准
多态最终的目的:统一子类编写的规范,为了让使用者更方便调用相同功能的方法

如何实现

-继承
注意:在python中,不会强制要求子类必须遵循父类的一套标准,所以出现了抽象类.

抽象类(了解)

什么是抽象类

abc模块 abstract_class

使用的目的

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

如何使用抽象类

import abc

鸭子类型

什么是鸭子类型

在不知道当前对象是何物的情况下,但是你长的像鸭子,那么你就是鸭子类型
在python中,不推荐使用抽象类强制限制子类的定义,但是推荐类都遵循鸭子类型.
继承:耦合性太高,程序的可扩展性弱
鸭子类型:耦合性低,程序的可扩展性强

猜你喜欢

转载自www.cnblogs.com/793564949liu/p/11657233.html