生活随笔
收集整理的這篇文章主要介紹了
python中的接口
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)載:http://blog.csdn.net/kobeyan/article/details/44344087
什么是接口 ?
接口只是定義了一些方法,而沒(méi)有去實(shí)現(xiàn),多用于程序設(shè)計(jì)時(shí),只是設(shè)計(jì)需要有什么樣的功能,但是并沒(méi)有實(shí)現(xiàn)任何功能,這些功能需要被另一個(gè)類(B)繼承后,由 類B去實(shí)現(xiàn)其中的某個(gè)功能或全部功能。
個(gè)人的理解,多用于協(xié)作開(kāi)發(fā)時(shí),有不同的人在不同的類中實(shí)現(xiàn)接口中的各個(gè)方法。
在python中接口由抽象類和抽象方法去實(shí)現(xiàn),接口是不能被實(shí)例化的,只能被別的類繼承去實(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,讓子類重寫這些函數(shù)。
當(dāng)然如果有強(qiáng)制要求,必須所有的實(shí)現(xiàn)類都必須按照接口中的定義寫的話,就必須要用接口。
方法一:用抽象類和抽象函數(shù)實(shí)現(xiàn)方法
[python]?view plaincopy
from?abc?import?ABCMeta,abstractmethod?? ?? class?interface(object):?? ????__metaclass__?=?ABCMeta??? ????@abstractmethod???? ????def?Lee(self):?? ????????pass?? ?????? ????def?Marlon(self):?? ????????pass?? ?? ?? class?RelalizeInterfaceLee(interface):?? ????def?__init__(self):?????? ????????print?'這是接口interface的實(shí)現(xiàn)'?? ????def?Lee(self):?? ????????print?'實(shí)現(xiàn)Lee功能'?????????? ????def?Marlon(self):?? ????????pass????? ??? ?? class?RelalizeInterfaceMarlon(interface):??? ????def?__init__(self):?????? ????????print?'這是接口interface的實(shí)現(xiàn)'?? ????def?Lee(self):?? ????????pass???????? ????def?Marlon(self):?? ????????print?"實(shí)現(xiàn)Marlon功能"?? ???
方法二:用普通類定義接口,
[python]?view plaincopy
class?interface(object):??? ????def?Lee(self):,?? ????????pass?? ?????? ????def?Marlon(self):?? ????????pass?? ??? class?Realaize_interface(interface):?? ????def?__init__(self):?? ????????pass?? ????def?Lee(self):?? ????????print?"實(shí)現(xiàn)接口中的Lee函數(shù)"?? ?????????? ?????????? class?Realaize_interface2(interface):?? ????def?__init__(self):?? ????????pass?? ????def?Marlon(self):?? ????????print?"實(shí)現(xiàn)接口中的Marlon函數(shù)"?? ??????? obj=Realaize_interface()?? obj.Lee()?? ?? ?? obj=Realaize_interface2()?? obj.Marlon() ?
總結(jié)
以上是生活随笔為你收集整理的python中的接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。