鸭子类型和白鹅类型以及python的虚拟子类注册器
python是一种多态语言,崇尚鸭子类型。
鸭子类型: 鸭子类型没有明确的接口,只是遵循了一定的协议,比如python序列协议只需要实现len和getitem方法 对于序列,这点鸭子类型和白鹅类型中Sequence抽象基类的要求完全相同,只是白鹅类型Sequence继承后能够自动获得抽象基类的方法,而鸭子类型没有这些方法.
“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
python 白鹅类型和鸭子类型 白鹅类型: 白鹅类型对接口有明确定义,比如不可变序列(Sequence),需要实现contains,iter,len,getitem,reversed,index,count
实际上这些语言特性Golang也比较推崇
虚拟子类