Python 抽象

Python 抽象

抽象是面向对象编程的一个重要原则之一。它指的是一种编程方法,只公开有关对象的相关数据,隐藏所有其他细节。这种方法有助于减少复杂性并提高应用程序开发效率。

抽象有两种类型。一种是数据抽象,通过内部通过隐藏数据实体的数据结构来隐藏原始数据实体。另一种类型称为过程抽象。它指的是隐藏过程的底层实现细节。

在面向对象编程术语中,如果一个类无法实例化,那么它被称为抽象类,也就是说你可以有一个抽象类的对象。但是,您可以将其用作构建其他类的基类或父类。

要在Python中创建一个抽象类,它必须继承abc模块中定义的ABC类。该模块在Python的标准库中可用。此外,该类必须至少有一个抽象方法。再次,抽象方法是无法调用但可以被覆盖的方法。您需要使用@abstractmethod装饰器来装饰它。

示例

from abc import ABC, abstractmethod
class demo(ABC):
   @abstractmethod
   def method1(self):
      print ("abstract method")
      return
   def method2(self):
      print ("concrete method")

demo类继承ABC类。有一个方法method1()是一个抽象方法。请注意,该类可能还有其他非抽象(具体)方法。

如果您尝试声明一个demo类的对象,Python会引发TypeError错误−

obj = demo()
         ^^^^^^
TypeError: Can't instantiate abstract class demo with abstract method method1

这里的demo类可以作为另一个类的父类使用。但是,子类必须覆盖父类中的抽象方法。否则,Python会抛出以下错误-

TypeError: Can't instantiate abstract class concreteclass with abstract method method1

因此,下面给出了重写抽象方法的子类实例的示例。

from abc import ABC, abstractmethod
class democlass(ABC):
   @abstractmethod
   def method1(self):
      print ("abstract method")
      return
   def method2(self):
      print ("concrete method")

class concreteclass(democlass):
   def method1(self):
      super().method1()
      return

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

输出

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

abstract method
concrete method

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程