2017-06-29 78 views
0

我已經在py35的py33書中實現了一個小代碼。我想從一個給定的子類得到超級類的實例如下:__bases__不適用於Python 3.5?

class Super: 
    def hello(self): 
     self.data1 = 'spam' 

class Sub(Super): 
    def hola(self): 
     self.data2 = 'eggs' 

X = Sub() 
X.__dict__ 
X.__class__ 
X.__bases__ 

然而,當我excecute的X.__bases__命令我得到一個錯誤:

爲什麼
AttributeError: 'Sub' object has no attribute '__bases__' 

有人能向我解釋這發生了,我怎麼能(如果不是這樣)獲得給定類的超類的實例?

感謝大家:)

回答

1

可以從類,而不是實例得到它,請參閱documentation of __bases__

class.__bases__

The tuple of base classes of a class object.

等等,總之,用type(X).__bases__

相關問題