python定义接口继承类南哥的天下

pyhton2.7会报错,此方法用于python3+pyhton2.7应用次方法定义1234567classs_all():#python2.7用此方法定义接口继承__metaclass__=abc.ABCMeta@abc.abstractmethoddefread(self):pass

抽象类中只能有抽象方法,子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。

Python2

classCopyBase(object):defsave(self):raiseNotImplementedErrorclassCopyPaper(CopyBase):def__init__(self):passdefsave(self):print("copypaper")classCopyQuestion(CopyBase):def__init__(self):passcopy_paper=CopyPaper()copy_paper.save()copy_question=CopyQuestion()copy_question.save()result:copypaperTraceback(mostrecentcalllast):copy_question.save()raiseNotImplementedErrorNotImplementedError这里以NotImplementedError的形式实现了抽象类和抽象方法,如果子类不实现该方法会抛出异常

Python3

在Python3中引入了abc模块,通过@abc.abstractmethod可以更加简洁地使用抽象类,抽象方法。

importabcclassCopyBase(metaclass=abc.ABCMeta):@abc.abstractmethoddefsave(self):passclassCopyPaper(CopyBase):def__init__(self):passdefsave(self):print("copypaper")classCopyQuestion(CopyBase):def__init__(self):passcopy_paper=CopyPaper()copy_paper.save()copy_question=CopyQuestion()copy_question.save()result:copypaperTraceback(mostrecentcalllast):copy_question=CopyQuestion()TypeError:Can'tinstantiateabstractclassCopyQuestionwithabstractmethodssave从abc模块引入类abstractmethod和类ABCMeta,自定义的CopyBase类继承抽象类ABCMeta,在类CopyBase中定义save方法,

添加装饰器abcstractmethod,CopyPaper类和CopyQuestion继承CopyBase类,分别实例化CopyPaper和CopyQuestion,

CopyQuestion类没有实现save方法,因此会抛出异常。

继承有两种用途:

一:继承基类的方法,并且做出自己的改变或者扩展(代码重用)

实践中,继承的第一种含义意义并不很大,甚至常常是有害的。因为它使得子类与基类出现强耦合。

继承的第二种含义非常重要。它又叫“接口继承”。接口继承实质上是要求“做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,可一视同仁的处理实现了特定接口的所有对象”——这在程序设计上,叫做归一化。

1.做出良好的抽象类,2.规定兼容接口3.调用者可以无需关心具体实现细节,可以一视同仁处理实现特定接口的所有对象。

什么是抽象类

与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化

为什么要有抽象类

如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。

比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉,要么是吃一个具体的桃子。。。。。。你永远无法吃到一个叫做水果的东西。

从设计角度去看,如果类是从现实对象抽象而来的,那么抽象类就是基于类抽象而来的。

从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且子类必须实现抽象方法。这一点与接口有点类似,但其实是不同的,即将揭晓答案

在python中实现抽象类

抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计

在python中,并没有接口类这种东西,即便不通过专门的模块定义接口,我们也应该有一些基本的概念。

在继承抽象类的过程中,我们应该尽量避免多继承;而在继承接口的时候,我们反而鼓励你来多继承接口

接口隔离原则:使用多个专门的接口,而不使用单一的总接口。即客户端不应该依赖那些不需要的接口。在抽象类中,我们可以对一些抽象方法做出基础实现;而在接口类中,任何方法都只是一种规范,具体的功能需要子类实现

1.多继承问题在继承抽象类的过程中,我们应该尽量避免多继承;而在继承接口的时候,我们反而鼓励你来多继承接口2.方法的实现在抽象类中,我们可以对一些抽象方法做出基础实现;而在接口类中,任何方法都只是一种规范,具体的功能需要子类实现

THE END
1.abc是什么意思ABC是26个英文字母的前三个。ABC用来指一般常识或浅显的道理,有时也用做书名,通常也指一段事情的开始,也被用作一些常用语的缩略语。ABC指出生于美国的华裔,https://m.yyk.iask.sina.com.cn/q/87HcxblKHuvv.html
2.2024年ABC中国大学排名公布!来看看和你预想的高校排名一致吗?而在清北之后,ABC评选的结果就比较有意思了。排在第三的是中国科学技术大学和浙江大学,两者以97.33的高分并列全国第三,而中科大和浙大身后的高校则是另外三所华五高校复旦大学、上海交通大学和南京大学,总体还是呈现一个清北+华五的趋势,但是华五内部分成了两大集团。所以此份榜单的一出,使得第三强高校的竞争https://baijiahao.baidu.com/s?id=1786979256656762381&wfr=spider&for=pc
3.ABC企业是什么意思,解析ABC企业的含义和特点ABC企业是一个常见的企业名称,很多人都听说过,但对于它的含义和特点却不是很清楚。那么,ABC企业是什么意思呢?下面就让我们来一起了解一下。 首先,ABC企业并不是一个具体的企业名称,而是一种命名方式。ABC是英文字母中的前三个字母,也是企业名称中常用的字母组合之一。通常情况下,ABC企业指的是一个由三个单词组https://www.marketup.cn/marketupblog/yxzx/13307.html
4.ABC是什么意思ABC怎么读音标?e?bi:'si:ABC的用法和例句: 1.Just like you were when you interned for me atABCnews. 和你刚来美国新闻实习时一个样 2.Don't forget about theABCparty tonight at the dorm. 别忘了今天晚上宿舍有ABC派对 以上参考资料就是本英汉词典详细汇总的单词ABC的翻译英语含义,如有错漏请向我们提供反馈意见。 https://www.xx5515.com/translate/20420674
5.什么是abc的意思?abc在不同领域中代表什么含义?基金频道什么是abc的意思?abc在不同领域中代表什么含义? 在众多领域中,“ABC”这一组合常常具有丰富多样的含义。 在数学领域,“ABC”可能代表着三角形的三个顶点,用于几何图形的描述和计算。 在计算机编程中,“ABC”有时会被用作变量名,或者是特定算法、代码块的标识。https://funds.hexun.com/2024-09-21/214642904.html
6.ABC是什么意思ABC在线翻译读音用法例句含义查字典英语词典频道免费为您提供在线翻译,包括ABC是什么意思,ABC的翻译,ABC的读音,ABC的用法,ABC的同/反义词,ABC的含义,ABC参考例句等内容,更多单词在查字典。https://www.chazidian.com/dict/w/ABC
7.计算机上的abcdef是什么意思相似问题 电脑自带计算器下面的ABCDEF是什么意思 计算器上各个符号的含义是什么? 计算器上面的字母什么意思 特别推荐 热点考点 2022年高考真题试卷汇总 2022年高中期中试卷汇总 2022年高中期末试卷汇总 2022年高中月考试卷汇总 二维码 回顶部?2021 作业帮?联系方式:service@zuoyebang.com?作业帮协议https://www.zybang.com/question/6ac07ad45bbd497ecf1f966ac5ea38e7.html
8.Abc是什么意思?Abc的含义杜登德语大辞典在线工具das Abc lernen, aufsagen.2. Buch mit alphabetisch geordneten Stichw?rtern: Abc der Fotografie.3. Anfangsgründe, Elemente: dieses Wissen geh?rt zum Abc der Wirtschaft; das Abc der Unternehmensgründung beherrschten die beiden Entrepreneure aus dem Osten schneller als gedacht (SZ 19. 8.https://www.wenjiangs.com/tool/deDudenDict/225abc
9.灭火器ABC类是指什么意思?灭火器ABC类是指什么意思? 一、灭火器ABC类的含义 灭火器的ABC类是指可以灭火的火源类型。其中,A类指固体可燃物,如木材、棉、毛、麻等燃烧的火灾;B类为液体火灾,主要包括甲、乙、丙类液体,如汽油、甲醇、乙醚、丙酮等引起的火灾;C类是气体燃烧物,如煤气、天然气、甲烷、氢气等燃烧的火灾。https://www.jiwu.com/baike/84338.html
10.股票的abc是什么意思理想股票技术论坛股票的abc是什么意思,股票、abc、含义 介绍股票中abc的含义和相关知识。 股票ABC指标深度解析:掌握核心要点,洞悉市场趋势 [股票软件指标公式技术交流] 李健钟 2024-10-29 相关标签:股票的abc是什么意思 股票abc有什么区别 股票abi是什么指标 股票abcd什么意思 阅读64 回复1 赞0 “股票指标abcd全面解析:洞悉https://www.55188.com/tag-8779734.html
11.车牌号abc是什么意思?车牌号abc是什么意思? abc仅为随机选取的号段,并无特定含义。而京A号段则是早期投放的车牌号段,京B则专门用于出租车。至于京C,它主要代表了早期大部分的私家车号段。此外,京AB、AA、AC以及AV等号段,则多数为Z.F的专用车辆所使用。https://www.yoojia.com/article/8894569526861258666.html
12.Alibaba最新1000多道Java面试题汇总详解,收藏起来慢慢刷!9、tring str = new String(“abc”);创建了几个对象,为什么? 10、什么是依赖注入? 11、String.trim()方法去掉的是哪些字符? 12、可以自定义 java.lang.String 类并使用吗? 13、spring 中有多少种 IOC 容器? 14、区分 BeanFactory 和 ApplicationContext。 https://maimai.cn/article/detail?fid=1728969401&efid=esjJLvGGL4fAr1LArgq_cQ
13.商务礼仪知识15篇学习国际礼仪心态要求,最为关键与重要的,是要有一种宽容的胸怀。老子说过:“上德若谷。”古人常讲两个词叫“虚怀若谷”、“有容乃大”,什么意思呢?因为国际交往是以跨文化交往为背景的。 国际商务礼仪要求具备的素质 国际商务要求进行外贸交往的人员首先要有一些外语基础,其次要坚守尊重的原则,第三要有自己的原则https://www.ruiwen.com/liyichangshi/4629038.html
14.oracle表名前面加前缀,请问oracle表名中的前缀后缀的含义请教oracle表名中的前缀、后缀的含义。 在oracle中表名的前缀、后缀是什么意思,哪位高手给详细解释一下。 如:select * from abc.tablename@def 中abc、def分别是什么意思? (似乎def是数据库名字,但abc是什么意思呢?) 多谢! ---解决思路--- 引用:在oracle中表名的前缀、后缀是https://blog.csdn.net/weixin_32924669/article/details/116540261