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
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com