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