Python編程中NotImplementedError的使用方法
Python編程中raise可以實現(xiàn)報出錯誤的功能,而報錯的條件可以由程序員自己去定制。在面向?qū)ο缶幊讨?,可以先預(yù)留一個方法接口不實現(xiàn),在其子類中實現(xiàn)。
如果要求其子類一定要實現(xiàn),不實現(xiàn)的時候會導(dǎo)致問題,那么采用raise的方式就很好。
而此時產(chǎ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é)果可以看出,程序識別到了這個方法并沒有在子類中實現(xiàn)卻被調(diào)用了。
從代碼報錯的行數(shù)來看,只有這個子類的實例化對象調(diào)用相應(yīng)的方法的時候才會報錯。
這樣的推測結(jié)論也很容易通過代碼修改測試得到驗證,此處不再驗證。
進(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()
在新的代碼中,子類中實現(xiàn)了對test_demo方法的設(shè)計。
程序的運(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)行了實現(xiàn),在執(zhí)行的時候未實施的錯誤便不會報出。
以上這篇Python編程中NotImplementedError的使用方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python argparse 解析命令行參數(shù)模塊詳情
這篇文章主要介紹了Python argparse 解析命令行參數(shù)模塊詳情,argparse是python用于解析命令行參數(shù)和選項的標(biāo)準(zhǔn)模塊,用于代替已經(jīng)過時的optparse模塊2022-07-07
Python全局變量關(guān)鍵字global的簡單使用
python中g(shù)lobal關(guān)鍵字主要作用是聲明變量的作用域,下面這篇文章主要給大家介紹了關(guān)于Python全局變量關(guān)鍵字global的簡單使用,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
在python中計算ssim的方法(與Matlab結(jié)果一致)
這篇文章主要介紹了在python中計算ssim的方法(與Matlab結(jié)果一致),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
對python操作kafka寫入json數(shù)據(jù)的簡單demo分享
今天小編就為大家分享一篇對python操作kafka寫入json數(shù)據(jù)的簡單demo,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Django使用celery異步發(fā)送短信驗證碼代碼示例
這篇文章主要介紹了Django中如何使用celery異步發(fā)送短信驗證碼的代碼示例,有需要的朋友可以借鑒參考下,希望可以對大家有所幫助2021-09-09
python tkinter圖形界面代碼統(tǒng)計工具(更新)
這篇文章主要為大家詳細(xì)介紹了python tkinter圖形界面代碼統(tǒng)計工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09

