Python - python里有类似Java的接口(interface)吗?

python

  1. https://stackoverflow.com/questions/2124190/how-do-i-implement-interfaces-in-python
  2. https://stackoverflow.com/questions/372042/difference-between-abstract-class-and-interface-in-python
  3. http://www.cnblogs.com/allen2333/p/8878542.html

总结

  1. 没有。在Python中没必要使用类似Java的interface。因为Python里有多继承和使用鸭子类型。
  2. 在Python中,协议就是接口。例如上下文管理协议,只要实现了对应的_enter_, __exit__方法就实现了这个上下文管理协议。
  3. Java中的接口是抽象类的特殊情况,抽象类:对一类事物的抽象。接口:对某一行为抽象。Java中的接口里面全部都是抽象方法。
  4. 在Python中,可以用抽象类实现接口

from abc import ABCMeta,abstractmethod

class Payment(metaclass=ABCMeta):

@abstractmethod #调用@abstractmethod规定子类必须有pay方法

def pay(self,money):

pass

class Wechatpay(Payment):

def pay(self,money):

print('微信支付了%s元'%money)

obj = Wechatpay()

以上是 Python - python里有类似Java的接口(interface)吗? 的全部内容, 来源链接: utcz.com/z/387587.html

回到顶部