python使用super()出現(xiàn)錯誤解決辦法
python使用super()出現(xiàn)錯誤解決辦法
當(dāng)我們在python的子類中調(diào)用父類的方法時,會用到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之后發(fā)現(xiàn),python在2.2前后有新式類(new-style class)與舊式類(old-style class)的區(qū)別,我上面的例子為舊式類,而super關(guān)鍵字必須作用于新式類。
新式類:所有類都必須要有繼承的類,如果什么都不想繼承,就繼承到object類。
所以,解決此錯誤必須將A類改為class A(object):
以上就是python super()使用遇到問題的解決辦法,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
pycharm不以pytest方式運(yùn)行,想要切換回普通模式運(yùn)行的操作
這篇文章主要介紹了pycharm不以pytest方式運(yùn)行,想要切換回普通模式運(yùn)行的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Python基礎(chǔ)學(xué)習(xí)之簡單理解函數(shù)
學(xué)了函數(shù)才算是能推動python的門了,今天就帶大家了解一下函數(shù)的相關(guān)知識,文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06Python?IDLE?Subprocess?Connection?Error的簡單解決方法
最近用要Python處理一點事,就打開Python IDLE,結(jié)果出現(xiàn)錯誤,下面這篇文章主要給大家介紹了關(guān)于Python?IDLE?Subprocess?Connection?Error的簡單解決方法,需要的朋友可以參考下2023-01-01python如何獲得list或numpy數(shù)組中最大元素對應(yīng)的索引
這篇文章主要介紹了python如何獲得list或numpy數(shù)組中最大元素對應(yīng)的索引,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python原始字符串與Unicode字符串操作符用法實例分析
這篇文章主要介紹了Python原始字符串與Unicode字符串操作符用法,結(jié)合實例形式分析了Python針對原始字符與Unicode字符的操作符用法,需要的朋友可以參考下2017-07-07詳解Python 序列化Serialize 和 反序列化Deserialize
這篇文章主要介紹了詳解Python 序列化Serialize 和 反序列化Deserialize的相關(guān)資料,序列化是將對象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程。與序列化相對的是反序列化,它將流轉(zhuǎn)換為對象。這兩個過程結(jié)合起來,可以輕松地存儲和傳輸數(shù)據(jù),需要的朋友可以參考下2017-08-08淺析pip安裝第三方庫及pycharm中導(dǎo)入第三方庫的問題
這篇文章主要介紹了淺析pip安裝第三方庫及pycharm中導(dǎo)入第三方庫的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03