我一直在阅读Python-Mixin,并逐渐了解它为类添加了一些特性(方法)。类似地,Java-Interfaces还为类提供方法。
唯一的区别,我可以看到,Java-interfaces是抽象的方法和Python-Mixin携带实现。
还有什么不同吗?
发布于 2017-02-09 17:52:13
嗯,“抽象方法”部分是很重要的。
Java是强类型的。通过在类型定义中指定接口,可以使用它们构造新类型的签名。在类型定义之后,您已经承诺这个新类型(或某些子类)最终将实现在您指定的各种接口中定义的所有函数。
因此,接口并不真正向类添加任何方法,因为它没有提供方法实现。它只是增加了这个类的签名/承诺。
然而,Python不是强类型的。类型的“签名”并不重要,因为它只是在运行时检查要调用的方法是否实际存在。
因此,在Python中,mixin实际上是要向类添加方法和功能。它与类型签名一点关系都没有。
总结如下:
https://stackoverflow.com/questions/42143261
复制相似问题