ITPub博客

首页 > 数据库 > 数据库开发技术 > Python 中创建抽象类和接口

Python 中创建抽象类和接口

原创 数据库开发技术 作者:HelloTech技术派 时间:2023-09-03 09:33:00 0 删除 编辑

在 Python 中,抽象类和接口是一种常见的面向对象编程概念。抽象类是一种不能被实例化的类,用于定义一组方法的签名,而不提供实现。接口是一组方法签名的集合,没有具体实现。

Python 中并没有提供官方的抽象类或接口机制,但可以通过 abc 模块来创建抽象类和接口。下面是一个示例:

from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

    @abstractmethod
    def perimeter(self):
        pass

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def perimeter(self):
        return 2 * (self.width + self.height)

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2

    def perimeter(self):
        return 2 * 3.14 * self.radius

r = Rectangle(5, 10)
print(r.area())  # 输出 50
print(r.perimeter())  # 输出 30

c = Circle(5)
print(c.area())  # 输出 78.5
print(c.perimeter())  # 输出 31.4

在这个示例中,我们定义了一个抽象类 Shape,它有两个抽象方法 area 和 perimeter。在 Rectangle 和 Circle 类中,我们实现了这两个方法,并且继承了 Shape 类,这样这两个类就都满足了 Shape 类的要求。

注意,我们在 Shape 类中使用了 @abstractmethod 装饰器来定义抽象方法,这样子类就必须要实现这些方法。如果子类没有实现所有的抽象方法,那么它也会被视为一个抽象类,不能被实例化。


原文作者:HelloTech技术派;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-12-05

  • 博文量
    181
  • 访问量
    73718