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()使用遇到問題的解決辦法,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
