溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python中有沒(méi)有接口

發(fā)布時(shí)間:2020-10-20 15:40:51 來(lái)源:億速云 閱讀:296 作者:小新 欄目:編程語(yǔ)言

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

接口只是定義了一些方法,而沒(méi)有去實(shí)現(xiàn),多用于程序設(shè)計(jì)時(shí),只是設(shè)計(jì)需要有什么樣的功能,但是并沒(méi)有實(shí)現(xiàn)任何功能,這些功能需要被另一個(gè)類(lèi)(B)繼承后,由 類(lèi)B去實(shí)現(xiàn)其中的某個(gè)功能或全部功能。

python沒(méi)有接口,但是在python中由抽象類(lèi)和抽象方法去實(shí)現(xiàn)接口功能,接口是不能被實(shí)例化的,只能被別的類(lèi)繼承去實(shí)現(xiàn)相應(yīng)的功能。

個(gè)人覺(jué)得接口在python中并沒(méi)有那么重要,因?yàn)槿绻^承接口,需要把其中的每個(gè)方法全部實(shí)現(xiàn),否則會(huì)報(bào)編譯錯(cuò)誤,還不如直接定義一個(gè)class,其中的方法實(shí)現(xiàn)全部為pass,讓子類(lèi)重寫(xiě)這些函數(shù)。

當(dāng)然如果有強(qiáng)制要求,必須所有的實(shí)現(xiàn)類(lèi)都必須按照接口中的定義寫(xiě)的話(huà),就必須要用接口。

用抽象類(lèi)和抽象函數(shù)實(shí)現(xiàn)方法

#抽象類(lèi)加抽象方法就等于面向?qū)ο缶幊讨械慕涌?
from abc import ABCMeta,abstractmethod
 
class interface(object):
    __metaclass__ = ABCMeta #指定這是一個(gè)抽象類(lèi)
    @abstractmethod  #抽象方法
    def Lee(self):
        pass
    
    def Marlon(self):
        pass
 
class RelalizeInterfaceLee(interface):#必須實(shí)現(xiàn)interface中的所有函數(shù),否則會(huì)編譯錯(cuò)誤
    def __init__(self):    
        print '這是接口interface的實(shí)現(xiàn)'
    def Lee(self):
        print '實(shí)現(xiàn)Lee功能'        
    def Marlon(self):
        pass   
 
 
class RelalizeInterfaceMarlon(interface): #必須實(shí)現(xiàn)interface中的所有函數(shù),否則會(huì)編譯錯(cuò)誤
    def __init__(self):    
        print '這是接口interface的實(shí)現(xiàn)'
    def Lee(self):
        pass      
    def Marlon(self):
        print "實(shí)現(xiàn)Marlon功能"

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python中有沒(méi)有接口大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI