1 组合
什么是组合:
组合就是有一个对象它拥有一个属性,该属性是另一个对象
1 class Foo:2 pass3 class Bar:4 pass5 a= Foo()6 b=Bar()7 b.attrd = a
为何要使用组合:
通过向一个类添加属性的方式,可以将两个类联系在一起
2 多态于多态性
什么是多态: 多态指的是一种事物的不同组合
多态的精髓就是:统一
不崇尚的方法:
import abcclass People(metaclass=abc.ABCMeta): @abc.abstractmethod def a(): pass @abc.abstractmethod def b(): passclass A(People): def a(): #此时格式被固定死了,必须有函数a和函数b print(a) def b(): pass
鸭子方法:
class People: def a(): pass def b(): passclass A): def a(): print(a) def b(): pass
3 封装
什么是封装:
封:代表将存放于名称空间的名字隐藏起来,这种隐藏对外不对内
装:向容器/名称空间中存入名字
总结:
1 __开头的属性没有真正的被隐藏,只是一种语法形式上的改写,并不是真正的限制外部的访问
2 该变形只在定义的阶段进行一次,之后再添加的__开头的属性,不会再进行变形
3 如果父类的属性不想被子类覆盖,就在属性的前面添加__