1.封装
封装这个词有两个相关联的定义。第一个定义是,封装是将相关的数据和代码捆绑成一个单元。封装的意思就是装箱。这实际上就是类的作用:它们组合了相关的特性和方法。第二个定义是,封装是一种隐藏信息的技术,对象借助它隐藏其复杂工作原理的实现细节。
2.多态性
多态性允许将一种类型的对象当作另一种类型的对象来对待。比如,len()
函数返回传递给它的参数的长度。可以把一个字符串传递给len(),看看有多少个字符,也可以把一个列表或字典传递给len(),看看有多少项或键−值对。这种多态的形式被称为“泛型函数”或“参数多态性”,因为它可以处理不同类型的对象。
3.何时不应该使用继承
使用继承可能会导致类过度地工程化。使用OOP可以将代码组织成更小的单元(在这里指“类”),这些单元的形式要比一个大的.py文件中不按特定顺序定义的数百个函数更容易让人明白。如果有多个函数操作同一个字典或者列表数据结构,那么将它们组织成类是个好主意。
多重继承可以通过较少的代码实现较多的功能,但很容易产生过于机械化且难以理解的代码。尽量使用单个继承和混入类,或者干脆不要继承,这样做反而能更好地完成程序的任务。