Python面向对象之接口类(抽象类)
生活随笔
收集整理的這篇文章主要介紹了
Python面向对象之接口类(抽象类)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Python面向?qū)ο笾涌陬?#xff08;抽象類):就是制定一個(gè)規(guī)范。比如定義了一個(gè)接口類(抽象類)(他們是不可以進(jìn)行實(shí)例化的,這就是他為什么是制定一個(gè)規(guī)范的原因)。
他的定義是需要abc模塊,要變的就是他的方法,比如下面的pay方法,
定義好一個(gè)抽象類(接口類)Payment,他用裝飾器@abstractmethod將pay方法裝飾
這樣,其他類如果都繼承了Payment方法,其他類中就都需要有一個(gè)pay方法,如果沒(méi)有就會(huì)報(bào)錯(cuò)。就好比,起初我沒(méi)有微信支付類,但是如果后續(xù)項(xiàng)目需要加微信支付此功能,支付的方法我可以起各種名字。
但是為了統(tǒng)一支付接口,我們繼承抽象類Payment后,我們的支付接口名就必須用pay.這就是接口類(抽象類的用途)from abc import ABCMeta, abstractmethodclass Payment(metaclass=ABCMeta): # 抽象類(接口類)
@abstractmethoddef pay(self): # 制定一個(gè)規(guī)范passclass Alipay(Payment):def __init__(self, money):self.money = moneydef pay(self):print('使用支付寶花了%s錢' % (self.money,))class Jdpay(Payment):def __init__(self, money):self.money = moneydef pay(self):print('使用京東支付了%s錢' % (self.money,))class Wechatpay(Payment):def __init__(self, money):self.money = moneydef pay(self):print('使用微信支付了%s錢' % (self.money,))w1 = Wechatpay(200)
a1 = Alipay(150)
j1 = Jdpay(100)
w1.pay()
a1.pay()
j1.pay()
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiao-xue-di/p/9371854.html
總結(jié)
以上是生活随笔為你收集整理的Python面向对象之接口类(抽象类)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux学习 - 文件包处理命令
- 下一篇: python做基本的图像处理