python使用super()出現錯誤解決辦法
當我們在python的子類中調用父類的方法時,會用到super(),不過我遇到了一個問題,順便記錄一下。
比如,我寫了如下錯誤代碼:
class A(): def dosomething(self): print "It's A"class B(A): def dosomething(self): super(B, self).dosomething()if __name__ == '__main__': b = B() b.dosomething()
輸出報錯:
TypeError: must be type, not classobj
google之后發現,python在2.2前后有新式類(new-style class)與舊式類(old-style class)的區別,我上面的例子為舊式類,而super關鍵字必須作用于新式類。
新式類:所有類都必須要有繼承的類,如果什么都不想繼承,就繼承到object類。
所以,解決此錯誤必須將A類改為class A(object):
以上就是python super()使用遇到問題的解決辦法,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答