原文轉載自 http://blog.csdn.net/andos/article/details/8973368
示例如下
- class A():
- def __init__(self):pass
- class B(A):
- def __init__(self):
- super(A, self).__init__()
調用B創建對象時出現錯誤
- TypeError: must be type, not classobj
查找資料之後發現,python中super只能應用於新類,而不能應用於經典類
所謂新類就是所有類都必須要有繼承的類,如果什麼都不想繼承,就繼承到object類。下面是一個新類的例子
- class A(B):
- ....
所謂經典類就是什麼都不用繼承的類,例如最初的A類就是經典類,下面是一個經典類的例子
- class A():
- ....
產上上面的問題,而自己又不知道父類該繼承什麼,最簡單的方法就是讓它去繼承object類
將class A改爲如下
- class A(object):
- .....
則再調用B的實例時,一切正常