参考
https://stackoverflow.com/questions/2124190/how-do-i-implement-interfaces-in-python
https://stackoverflow.com/questions/372042/difference-between-abstract-class-and-interface-in-python
http://www.cnblogs.com/allen2333/p/8878542.html
总结
没有。在Python中没必要使用类似Java的interface。因为Python里有多继承和使用鸭子类型。
在Python中,协议就是接口。例如上下文管理协议,只要实现了对应的_enter _, __exit__方法就实现了这个上下文管理协议。
Java中的接口是抽象类的特殊情况,抽象类:对一类事物的抽象。接口:对某一行为抽象。Java中的接口里面全部都是抽象方法。
在Python中,可以用抽象类实现接口
from abc import ABCMeta,abstractmethod
class Payment (metaclass=ABCMeta):
@abstractmethod
def pay (self,money ):
pass
class Wechatpay (Payment ):
def pay (self,money ):
print ('微信支付了%s元' %money)
obj = Wechatpay()