Python編程中NotImplementedError的使用方法
Python編程中raise可以實(shí)現(xiàn)報(bào)出錯(cuò)誤的功能,而報(bào)錯(cuò)的條件可以由程序員自己去定制。在面向?qū)ο缶幊讨?,可以先預(yù)留一個(gè)方法接口不實(shí)現(xiàn),在其子類中實(shí)現(xiàn)。
如果要求其子類一定要實(shí)現(xiàn),不實(shí)現(xiàn)的時(shí)候會(huì)導(dǎo)致問(wèn)題,那么采用raise的方式就很好。
而此時(shí)產(chǎn)生的問(wèn)題分類是NotImplementedError。
寫一段代碼如下:
class ClassDemo:
def test_demo(self):
raiseNotImplementedError("my test: not implemented!")
classChildClass(ClassDemo):
pass
inst =ChildClass()
inst.test_demo()
程序運(yùn)行結(jié)果:
E:\01_workspace\02_programme_language\03_python\OOP\2017\08\10>pythonerror_demo.py
Traceback (mostrecent call last):
File "error_demo.py", line 9, in<module>
inst.test_demo()
File "error_demo.py", line 3, intest_demo
raise NotImplementedError("my test:not implemented!")
NotImplementedError:my test: not implemented!
從上面的運(yùn)行結(jié)果可以看出,程序識(shí)別到了這個(gè)方法并沒(méi)有在子類中實(shí)現(xiàn)卻被調(diào)用了。
從代碼報(bào)錯(cuò)的行數(shù)來(lái)看,只有這個(gè)子類的實(shí)例化對(duì)象調(diào)用相應(yīng)的方法的時(shí)候才會(huì)報(bào)錯(cuò)。
這樣的推測(cè)結(jié)論也很容易通過(guò)代碼修改測(cè)試得到驗(yàn)證,此處不再驗(yàn)證。
進(jìn)一步修改代碼:
class ClassDemo:
def test_demo(self):
raiseNotImplementedError("my test: not implemented!")
classChildClass(ClassDemo):
def test_demo(self):
print("OKOKOOK!")
inst =ChildClass()
inst.test_demo()
在新的代碼中,子類中實(shí)現(xiàn)了對(duì)test_demo方法的設(shè)計(jì)。
程序的運(yùn)行結(jié)果如下:
E:\01_workspace\02_programme_language\03_python\OOP\2017\08\10>pythonerror_demo.py OKOKOOK!
從程序的執(zhí)行結(jié)果可以看出,只要相應(yīng)的方法接口進(jìn)行了實(shí)現(xiàn),在執(zhí)行的時(shí)候未實(shí)施的錯(cuò)誤便不會(huì)報(bào)出。
以上這篇Python編程中NotImplementedError的使用方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python通過(guò)函數(shù)屬性實(shí)現(xiàn)全局變量的方法
這篇文章主要介紹了python通過(guò)函數(shù)屬性實(shí)現(xiàn)全局變量的方法,實(shí)例分析了Python中函數(shù)屬性的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05
了解一下python內(nèi)建模塊collections
這篇文章主要介紹了Python內(nèi)建模塊——collections的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-09-09
Python中最好用的命令行參數(shù)解析工具(argparse)
這篇文章主要介紹了Python中最好用的命令行參數(shù)解析工具(argparse),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合的方法
今天小編就為大家分享一篇Python 普通最小二乘法(OLS)進(jìn)行多項(xiàng)式擬合的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Python 多維List創(chuàng)建的問(wèn)題小結(jié)
這篇文章主要介紹了Python 多維List創(chuàng)建的問(wèn)題小結(jié),詳細(xì)的介紹了遇到的一個(gè)小問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Python Sql數(shù)據(jù)庫(kù)增刪改查操作簡(jiǎn)單封裝
這篇文章主要為大家介紹了Python Sql數(shù)據(jù)庫(kù)增刪改查操作簡(jiǎn)單封裝,感興趣的小伙伴們可以參考一下2016-04-04
使用Tensorflow-GPU禁用GPU設(shè)置(CPU與GPU速度對(duì)比)
這篇文章主要介紹了使用Tensorflow-GPU禁用GPU設(shè)置(CPU與GPU速度對(duì)比),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
使用Python腳本對(duì)Linux服務(wù)器進(jìn)行監(jiān)控的教程
這篇文章主要介紹了使用Python程序?qū)inux服務(wù)器進(jìn)行監(jiān)控的教程,主要基于Python2.7的版本,需要的朋友可以參考下2015-04-04

