Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接口和Python_Python_Python 3.x - Fatal编程技术网

接口和Python

接口和Python,python,python-3.x,Python,Python 3.x,我在Python3和接口上做了一些搜索。我似乎找不到一个直接的答案,它是pythonic,还是不使用接口。我知道python允许mixin,并允许duck类型。然而,他们从实现接口中获得了一组“需求”。关于Python3接口的决定是什么 如果接口是pythonic的,那么实现它们的最佳方式是什么?而Python 2和3通过标称子类型()支持这种类型的功能,并且,如果使用类型注释,则引入了带有协议的静态duck类型的概念。与Swift协议或Java接口类似,Protocol为子类型定义接口(可选地

我在Python3和接口上做了一些搜索。我似乎找不到一个直接的答案,它是pythonic,还是不使用接口。我知道python允许mixin,并允许duck类型。然而,他们从实现接口中获得了一组“需求”。关于Python3接口的决定是什么


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

而Python 2和3通过标称子类型()支持这种类型的功能,并且,如果使用类型注释,则引入了带有
协议的静态duck类型的概念。与Swift协议或Java接口类似,
Protocol
为子类型定义接口(可选地包括属性和方法的默认实现)


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

我一直认为它们是将Java范例引入Python的一种方法。因此,我根本不把它们看成是蟒蛇。界面与许多其他语言不同。@martineau感谢您帮助我修正我描述问题的方式。不客气。由于duck类型和您在问题中提到的其他一些原因,Python不能从对象的类型确定其适用性,也不能为协议或接口提供显式的语言支持,因此使用它的实践并不普遍(这也是为什么您找不到大量关于它的信息的原因)。请参阅维基百科文章中关于的部分。