【筆記9】解決python2調用父類出現的問題:super() argument 1 must be type, not classobj

通過文章Python: super 沒那麼簡單學習super(),作者寫得很詳細,但是還是犯一些人家已經提示了的錯,記下來打自己的臉。

作者一開始提出:

在開始之前我們來約定一下本文所使用的 Python 版本。默認用的是 Python 3,也就是說:本文所定義的類都是新式類。如果你用到是 Python 2 的話,記得繼承 object:

# 默認, Python 3
class A:
   pass

# Python 2
class A(object):
   pass

本人像是瞎了一樣,重要的事再說一遍:如果你用到是 Python 2 的話,記得繼承 object

python裏的super只能用在新式類中,不能用於以前的經典類,如果基類是經典類則會出現這個錯誤:super() argument 1 must be type, not classobj
父類記得繼承object,不是Object…

附帶:python新式類和經典類的區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章