接口和Python
我在Python3和接口上做了一些搜索。我似乎找不到一个直接的答案,它是pythonic,还是不使用接口。我知道python允许mixin,并允许duck类型。然而,他们从实现接口中获得了一组“需求”。关于Python3接口的决定是什么接口和Python,python,python-3.x,Python,Python 3.x,我在Python3和接口上做了一些搜索。我似乎找不到一个直接的答案,它是pythonic,还是不使用接口。我知道python允许mixin,并允许duck类型。然而,他们从实现接口中获得了一组“需求”。关于Python3接口的决定是什么 如果接口是pythonic的,那么实现它们的最佳方式是什么?而Python 2和3通过标称子类型()支持这种类型的功能,并且,如果使用类型注释,则引入了带有协议的静态duck类型的概念。与Swift协议或Java接口类似,Protocol为子类型定义接口(可选地
如果接口是pythonic的,那么实现它们的最佳方式是什么?而Python 2和3通过标称子类型()支持这种类型的功能,并且,如果使用类型注释,则引入了带有
协议的静态duck类型的概念。与Swift协议或Java接口类似,Protocol
为子类型定义接口(可选地包括属性和方法的默认实现)
通过导入模块,您现在可以在所有Python版本(3.5.0除外)中使用协议。我一直认为它们是将Java范例引入Python的一种方法。因此,我根本不把它们看成是蟒蛇。界面与许多其他语言不同。@martineau感谢您帮助我修正我描述问题的方式。不客气。由于duck类型和您在问题中提到的其他一些原因,Python不能从对象的类型确定其适用性,也不能为协议或接口提供显式的语言支持,因此使用它的实践并不普遍(这也是为什么您找不到大量关于它的信息的原因)。请参阅维基百科文章中关于的部分。