欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python編程中NotImplementedError的使用方法

 更新時間:2018年04月21日 10:18:50   投稿:jingxian  
下面小編就為大家分享一篇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)文章

最新評論