鸭子类型与多态
鸭子类型语言
- 鸭子类型语言:python中参数与数据类型无关,与数据类型的特征有关。
- 例:extand() :向列表中添加元素的方法。参数为可迭代对象,可以使列表、元组、集合等。
多态
- 多态的前提:类继承,方法重写
- 从类继承的角度来讲,有部分相同的行为或属性,但是体现出来的(值)却是不一样的,这就是多态。
抽象基类模块
抽象基类(abstract base class)
- metaclass = abc.ABCMeta
- @abc.abstractmethod
type()与isinstance()的区别
- 类的类型是type.
hasattr():判断对象中是否有某一属性或方法
dir()
- dir():以列表的形式返回对象的所有属性和方法
- dict:以字典的形式返回对象的属性和属性值
python中多重继承问题
- method resolution order 方法解析顺序
- mro
- 在python3之后:每个类都可以使用__mro__来得到类继承的顺序。
super()方法
- 用于子类中调用父类的方法。
python自省机制
- 自省:通过一定的机制查询到对象的内部结构;
- 常用的自省机制(函数方法)
- type()
- hasattr()
- isinstance()
- dir()