![](/img/trans.png)
[英]What's the difference between an inner class and an inner inner class in python? [duplicate]
[英]What's the difference between 'class A:' and 'class A(object):' in Python?
之間有什么區別
class A:
pass
和
class B(object):
pass
? 由於某種原因,在方法中我不能使用super(A, self)
但是super(B, self)
效果很好。 我猜在Py3k中沒有這樣的特點:)
在2.x中,后者創建一個新式類 。 在3.x中,由於已刪除舊式類,因此兩者具有相同的效果。
第一個是老式類。 第二個是新型類。 請參閱http://docs.python.org/tutorial/classes.html#multiple-inheritance ,以獲取有關區別的詳細討論。 super()
僅適用於新型類。 http://docs.python.org/library/functions.html#super
B類是一種新樣式的類http://www.python.org/doc/newstyle/
如前所述,第二種情況創建一個新樣式的類,而第一種情況創建一個舊的樣式的類(不建議使用!)。
創建新樣式類以消除舊樣式的限制:舊樣式類不能從內置類型繼承。 使用新型類,您可以從內置類型繼承; 實際上,所有內置類型都源自“對象”:
>>> list.__mro__
(<type 'list'>, <type 'object'>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.