bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

python3中如何使用接口類-創(chuàng)新互聯(lián)

了解python3中如何使用接口類?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

我們一直強(qiáng)調(diào)網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)對(duì)于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過(guò)程中的有力推手。專業(yè)網(wǎng)站設(shè)計(jì)公司不一定是大公司,創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

我們來(lái)看一段代碼去了解為什么需要接口類

class Alipay:
    def pay(self,money):
        print('支付寶支付了')
class Apppay:
    def pay(self,money):
        print('蘋果支付了')
class Weicht:
    def pay(self,money):
        print('微信支付了')
def pay(payment,money):       # 支付函數(shù),總體負(fù)責(zé)支付,對(duì)應(yīng)支付的對(duì)象和要支付的金額
    payment.pay(money)
p=Alipay()
pay(p,200)      #支付寶支付了

這段代碼,實(shí)現(xiàn)了一個(gè)有趣的功能,就是通過(guò)一個(gè)總體的支付函數(shù),實(shí)現(xiàn)了不同種類的支付方式,不同是支付方式作為對(duì)象,傳入函數(shù)中

但是開發(fā)中容易出現(xiàn)一些問(wèn)題,那就是類中的函數(shù)名不一致,就會(huì)導(dǎo)致調(diào)用的時(shí)候找不到類中對(duì)應(yīng)方法,例題如下:

class Alipay:
    def paying(self,money):    #這里類的方法可能由于程序員的疏忽,寫的不是一致的pay,導(dǎo)致后面調(diào)用的時(shí)候找不到pay
        print('支付寶支付了')
class Apppay:
    def pay(self,money):
        print('蘋果支付了')
class Weicht:
    def pay(self,money):
        print('微信支付了')
def pay(payment,money):       # 支付函數(shù),總體負(fù)責(zé)支付,對(duì)應(yīng)支付的對(duì)象和要支付的金額
    payment.pay(money)
p=Alipay()   #不報(bào)錯(cuò)
pay(p,200)      #調(diào)用執(zhí)行就會(huì)報(bào)錯(cuò),'Alipay' object has no attribute 'pay'

這時(shí)候怎么辦呢?可以手動(dòng)拋異常:NotImplementedError來(lái)解決開發(fā)中遇到的問(wèn)題

class payment:
    def pay(self):
        raise NotImplementedError    #手動(dòng)拋異常
class Alipay:
    def paying(self, money):  # 這里類的方法不是一致的pay,導(dǎo)致后面調(diào)用的時(shí)候找不到pay
        print('支付寶支付了')
def pay(payment, money):  # 支付函數(shù),總體負(fù)責(zé)支付,對(duì)應(yīng)支付的對(duì)象和要支付的金額
    payment.pay(money)
 
p = Alipay()  # 不報(bào)錯(cuò)
pay(p, 200)  #調(diào)用的時(shí)候才會(huì)報(bào)錯(cuò)  'Alipay' object has no attribute 'pay'

也可以借用abc模塊來(lái)處理這種錯(cuò)誤

from abc import abstractmethod, ABCMeta     #接口類中定義了一些接口名:Pay,且并未實(shí)現(xiàn)接口的功能,子類繼承接口類,并且實(shí)現(xiàn)接口中的功能
class Payment(metaclass=ABCMeta):    #抽象出的共同功能Pay
    @abstractmethod
    def pay(self,money):pass    #這里面的pay 來(lái)源于下面類中的方法pay,意思把這個(gè)方法規(guī)范為統(tǒng)一的標(biāo)準(zhǔn),另外建一個(gè)規(guī)范類Payment
class Alipay(Payment):
    def paying(self, money):    #這里出現(xiàn)paying和我們規(guī)范的pay不一樣,那么在實(shí)例化 Alipay的時(shí)候就會(huì)報(bào)錯(cuò)
        print('支付寶支付了')
class Weicht(Payment):
    def pay(self,money):
        print('微信支付了')
def pay(pay_obj,money):
    pay_obj.pay(money)
p=Alipay()   #實(shí)例化的時(shí)候就會(huì)報(bào)錯(cuò)  Can't instantiate abstract class Alipay with abstract methods pay 之前兩個(gè)例子都是在執(zhí)行的時(shí)候報(bào)錯(cuò),這里不一樣的是實(shí)例化就會(huì)知道是哪里發(fā)生錯(cuò)誤了

總結(jié):用abc模塊裝飾后,在實(shí)例化的時(shí)候就會(huì)報(bào)錯(cuò),那么當(dāng)我們代碼很長(zhǎng)的時(shí)候,就可以早一點(diǎn)預(yù)知錯(cuò)誤,所以以后在接口類類似問(wèn)題中用這個(gè)模塊

接口繼承實(shí)質(zhì)上是要求“做出一個(gè)良好的抽象,這個(gè)抽象規(guī)定了一個(gè)兼容接口,使得外部調(diào)用者無(wú)需關(guān)心具體細(xì)節(jié),

可一視同仁的處理實(shí)現(xiàn)了特定接口的所有對(duì)象”——這在程序設(shè)計(jì)上,叫做歸一化。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python3中如何使用接口類大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:python3中如何使用接口類-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://vcdvsql.cn/article40/iisho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)靜態(tài)網(wǎng)站建站公司網(wǎng)站設(shè)計(jì)公司網(wǎng)站改版全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)