为什么python 为什么没有接口_python没有接口吗
接口只是定義了一些方法,而沒有去實(shí)現(xiàn),多用于程序設(shè)計(jì)時(shí),只是設(shè)計(jì)需要有什么樣的功能,但是并沒有實(shí)現(xiàn)任何功能,這些功能需要被另一個(gè)類(B)繼承后,由 類B去實(shí)現(xiàn)其中的某個(gè)功能或全部功能。
python沒有接口,但是在python中由抽象類和抽象方法去實(shí)現(xiàn)接口功能,接口是不能被實(shí)例化的,只能被別的類繼承去實(shí)現(xiàn)相應(yīng)的功能。(推薦學(xué)習(xí):Python視頻教程)
個(gè)人覺得接口在python中并沒有那么重要,因?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)方法#抽象類加抽象方法就等于面向?qū)ο缶幊讨械慕涌?/p>
from abc import ABCMeta,abstractmethod
class interface(object):
__metaclass__ = ABCMeta #指定這是一個(gè)抽象類
@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功能"
更多Python相關(guān)技術(shù)文章,請(qǐng)?jiān)L問Python教程欄目進(jìn)行學(xué)習(xí)!
以上就是python沒有接口嗎的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的为什么python 为什么没有接口_python没有接口吗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios查看线程数量_关于iOS多线程,你
- 下一篇: 经典兔子问题python视频_Pytho