python 抽象类和接口类
继承有两种用途:
一:继承基类的方法,并且做出自己的改变或者扩展(代码重用)
二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能.
实践中,继承的第一种含义意义并不很大,甚至常常是有害的。因为它使得子类与基类出现强耦合。
继承的第二种含义非常重要。它又叫“接口继承”。
接口继承实质上是要求“做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,可一视同仁的处理实现了特定接口的所有对象”——这在程序设计上,叫做归一化。
1.做出良好的抽象类,2.规定兼容接口3.调用者可以无需关心具体实现细节,可以一视同仁处理实现特定接口的所有对象。
#做出一个良好的抽象
classPayment(object):
#规定了一个兼容接口
defpay(self):
pass
#微信支付
classWeChatPay(object):
defpay(self,money):
print('微信支付了%s'%money)
#支付宝支付
classAliPay(object):
defpay(self,money):
print('支付宝支付了%s'%money)
#苹果支付
classApplePay(object):
defpay(self,money):
print('苹果支付了%s'%money)
defpay(obj,money):
obj.pay(money)
weixin=WeChatPay()
alipay=AliPay()
applepay=ApplePay()
#调用者无需关心具体实现细节,可以一视同仁的处理实现了特定接口的所有对象
pay(weixin,100)
pay(alipay,200)
pay(applepay,300)
归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合——就好象linux的泛文件概念一样,所有东西都可以当文件处理,不必关心它是内存、磁盘、网络还是屏幕(当然,对底层设计者,当然也可以区分出“字符设备”和“块设备”,然后做出针对性的设计:细致到什么程度,视需求而定)。
1
2依赖倒置原则:
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该应该依赖细节;细节应该依赖抽象。换言之,要针对接口编程,而不是针对实现编程
以上内容为大家介绍了Python抽象类和接口类,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>python类对象和实例对象是一样的吗
python面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“...详情>>
2023-11-06 22:21:27python pyc 文件
一个pyc文件包含了三部分信息:Python的magicnumber、pyc文件创建的时间信息,以及PyCodeObject对象。magicnumber是Python定义的一个整数值。一...详情>>
2023-11-06 16:10:10python的keras训练
Keras模型在输入数据和标签的Numpy矩阵上进行训练。为了训练一个模型,你通常会使用fit函数。文档详见此处。fit(self,x,y,batch_size=32,epochs...详情>>
2023-11-06 15:46:04python装饰器的概念
装饰器一直是我们学习python难以理解并且纠结的问题,想要弄明白装饰器,必须理解一下函数式编程概念,并且对python中函数调用语法中的特性有所...详情>>
2023-11-06 12:05:19