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

Python編程中NotImplementedError的使用方法

 更新時(shí)間:2018年04月21日 10:18:50   投稿:jingxian  
下面小編就為大家分享一篇Python編程中NotImplementedError的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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。

寫(xiě)一段代碼如下:

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)文章

最新評(píng)論