首页 > 编程语言 >Python面向对象之抽象类与抽象方法

Python面向对象之抽象类与抽象方法

时间:2023-12-14 15:45:35浏览次数:24  
标签:perimeter __ area Python self 面向对象 抽象类 def

C++和Java中面向对象中有抽象类或接口的说法,在python中没有abstract或interface这样的内置关键字。但是abc模块(Abstract Base Classes)实现了这些抽象类检查的功能,其中ABC是抽象基类。@abstractmethod表示这个方法是一个抽象方法,子类必须重写。关于抽象类与抽象方法的示例代码如下:

from abc import ABC, abstractmethod

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

    @abstractmethod
    def perimeter(self):
        pass

class Circle(Shape):
    def __init__(self, radius):
        self.rad = radius
    
    def area(self):
        return 3.14 * self.rad * self.rad

    def perimeter(self):
        return 6.28 * self.rad

class Rectangle(Shape):
    def __init__(self, width, height):
        self.wid = width
        self.he = height
    
    def area(self):
        return self.wid * self.he
    
    def perimeter(self):
        return 2*(self.wid + self.he)


circle = Circle(5)
print( circle.area() )
print( circle.perimeter() )


rectangle = Rectangle(4, 6)
print(rectangle.area())
print(rectangle.perimeter())

标签:perimeter,__,area,Python,self,面向对象,抽象类,def
From: https://www.cnblogs.com/Higgerw/p/17901301.html

相关文章

  • python 文件下载快速、安全和简单的方式
    Python文件下载是指使用Python编写的程序来下载文件。给出一个使用urllib库实现文件下载的示例代码:上面的代码中,url变量表示要下载的文件的URL,save_path变量表示文件保存的路径,最后使用urllib.request)函数来下载文件。Python文件下载是指使用Python编写的程序来下载文件。给出一个......
  • 为什么Python赢了,别的语言都干嘛去了?
    为什么Python赢了,别的语言都干嘛去了?作者:刘欣2019-12-0910:00:46企业动态1995年,当JimHugunin正在麻省理工学院和他的硕士论文“搏斗”时,他广泛地使用了Matlab,因为在那篇论文中,他需要对实验结果进行数据分析,和理论值比较。 人工智能时代,为什么Python大放异彩,别的语言都......
  • python远程关闭liunx计算机并转化成可执行文件exe
    1.安装Python首先,确保您已经安装了Python。访问https://www.python.org/downloads/,下载并安装适合您操作系统的Python发行版。2.安装JupyterNotebook接下来,我们需要在计算机上安装JupyterNotebook。在命令提示符(Windows)或终端(Mac和Linux)中运行以下命令:pipinstalljupyter......
  • 【Python】人工智能-机器学习——不调库手撕深度网络分类问题
    1.作业内容描述1.1背景数据集大小150该数据有4个属性,分别如下Sepal.Length:花萼长度(cm)Sepal.Width:花萼宽度单位(cm)Petal.Length:花瓣长度(cm)Petal.Width:花瓣宽度(cm)category:类别(IrisSetosa\IrisVersicolour\IrisVirginica)1.2要求在不调用机器学习库的情......
  • python 定义类的时候的 A(object) 和 A 区别是什么?
    在Python中,A(object)和A的区别涉及到类的继承和类的定义方式。继承的区别:A(object)表示A类继承自object类。这是在Python2中引入新式类的写法,是显式地继承自基类object。在Python3中,所有的类都隐式继承自object,因此这两者在大多数情况下是等效的。A表示......
  • 【Python】人工智能-机器学习——不调库手撕贝叶斯分类问题
    1.作业内容描述1.1背景数据集大小150该数据有4个属性,分别如下Sepal.Length:花萼长度(cm)Sepal.Width:花萼宽度单位(cm)Petal.Length:花瓣长度(cm)Petal.Width:花瓣宽度(cm)category:类别(IrisSetosa\IrisVersicolour\IrisVirginica)1.2要求在不调用机器学习库的情......
  • Python算法——计数排序
    计数排序(CountingSort)是一种非比较性排序算法,适用于对一定范围内的整数进行排序。它通过统计每个元素出现的次数,然后根据统计信息重新构建有序数组。计数排序是一种线性时间复杂度的排序算法,具有稳定性和适用性广泛的特点。本文将详细介绍计数排序的工作原理和Python实现。计数排......
  • python使用paillier过程中遇到的问题及解决方案记录
    OverflowError:Overflowdetectedindecryptednumber错误表明在解密操作中检测到了溢出。这可能是由于解密的结果超过了Paillier密码系统的容量。以下是一些可能导致溢出的原因和解决方法:密钥长度不足:密钥长度决定了可以处理的数字范围。如果你使用的是较短的密钥,它可......
  • python中协程并发io等待
    importasyncioimporttimeasyncdefa():start_time=time.time()print("函数a开始执行")tasks=[asyncio.create_task(b())]#创建一个任务列表,包含函数b的任务print("函数a执行其他操作")awaitasyncio.sleep(14)#休眠1秒print("函数a执行完......
  • Python实现软件设计模式1:简单工厂/静态工厂模式
    包含的角色工厂角色Factory静态方法抽象产品角色Product声明公用的抽象方法和属性具体产品角色ConcreteProduct覆盖抽象产品中声明的方法,多种产品多种覆盖模式特点可以降低系统耦合度,使用工厂方法时无需知道对象创建细节,传入工厂类的参数可以是字......