接口与Python

Interfaces and Python

我在python3和接口上做了一些搜索。我似乎找不到一个直接的答案,如果它是Python,或不使用界面。我知道python允许mixin,允许duck输入。然而,它们从实现接口中得到一组"需求"。python3接口的决定是什么?

如果接口是Python式的,那么实现它们的最佳方法是什么?


虽然python 2和3通过名义子类型(mixin)和抽象基类支持这种类型的功能,但是如果您使用类型注释,那么pep 544引入了使用Protocol进行静态duck类型化的概念。与SWIFT协议或Java接口类似,EDCOX1 OR 0定义了子类型的接口(可选地包括属性和方法的默认实现)。

通过导入typing-extensions模块,现在可以在所有Python版本(3.5.0除外)中使用协议。