通過文章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…