python类中的抽象函数,以及继承后子类的比较

编程入门 行业动态 更新时间:2024-10-24 07:33:20

python类中的抽象函数,以及继承后<a href=https://www.elefans.com/category/jswz/34/1770793.html style=子类的比较"/>

python类中的抽象函数,以及继承后子类的比较

抽象函数的定义方式

导包
from abs import ABCMeta,abstractmethod
声明抽象类
class Area(object):@abstractmethoddef area(self):pass

在抽象类中,不用写构造函数,抽象类不能进行实例化
继承抽象类的子类必须将抽象类中的函数进行重写(不重写就会报错)

补充语法特性

python3中在写类的时候已经不需要继承object这个类了,这个中写好了多个函数,最常用的就是各个自定义类的比较函数,有了这些各个类中的比较函数是非常方便的,可以进行同类型的比较

但是python3中确实没有现成的继承同一个父类的子类进行比较的方法,我们只能手写比较函数

比较函数导包
from functools import total_ordering
进行比较
@total_ordering
class Area(object):@abstractmethod  # 抽象接口装饰器# 抽象类的定义必须使用这个函数接口   def area(self):passdef __eq__(self, other):return self.area() == other.area()def __lt__(self, other):return self.area() < other.area()class Circle(Area):def __init__(self,a):self.r=adef area(self):return 3.14 * ( self.r **2)class Square(Area):def __init__(self,a,b):self.length=aself.width=bdef area(self):return self.length * self.width

特别要说的是:我们只需要写成两个函数就可以了,其他的比较大小的函数都是可以通过这两种进行组合出来的,并且是不需要我们动手进行组合的,编译器会自动帮我们实现,我们只使用就行了

如果我们只是继承了,但是在父类中没有手写比较函数,就会发生报错

更多推荐

python类中的抽象函数,以及继承后子类的比较

本文发布于:2023-11-15 01:08:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1590991.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:子类   抽象   函数   类中   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!