Python 接口

Python 接口

在软件工程中,接口是一种软件架构模式。接口类似于类,但是其方法只有原型签名定义,没有实现。建议的功能需要由具体类来实现。

在像Java这样的语言中,有接口关键字,可以轻松定义接口。Python没有这样的关键字。因此,在抽象类中可以使用相同的ABC类和@abstractmethod装饰器,就像在抽象类中一样。

在Python中,抽象类和接口看起来很相似。两者之间唯一的区别是抽象类可以有一些非抽象方法,而接口中的所有方法必须是抽象的,并且实现类必须重写所有抽象方法。

示例

from abc import ABC, abstractmethod
class demoInterface(ABC):
   @abstractmethod
   def method1(self):
      print ("Abstract method1")
      return

   @abstractmethod
   def method2(self):
      print ("Abstract method1")
      return

以上接口有两个抽象方法。与抽象类一样,我们无法实例化一个接口。

obj = demoInterface()
         ^^^^^^^^^^^^^^^
TypeError: Can't instantiate abstract class demoInterface with abstract methods method1, method2

让我们提供一个实现了所有抽象方法的类。如果没有实现所有抽象方法,Python就会显示以下错误信息-

obj = concreteclass()
         ^^^^^^^^^^^^^^^
TypeError: Can't instantiate abstract class concreteclass with abstract method method2

以下的类实现了两个方法 –

class concreteclass(demoInterface):
   def method1(self):
      print ("This is method1")
      return

   def method2(self):
      print ("This is method2")
      return

obj = concreteclass()
obj.method1()
obj.method2()

输出

当您执行此代码时,将会产生以下输出:

This is method1
This is method2

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程