我在py35中为py33的书后面实现了一个小代码。我试图从给定的子类获取超类实例,如下所示:
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__
然而,当我执行X.__bases__
命令时,我收到错误:
AttributeError: 'Sub' object has no attribute '__bases__'
有人可以向我解释为什么会发生这种情况,我怎么能(如果不是这样)获得给定类的超类的实例?
谢谢大家:)
答案 0 :(得分:1)
您可以从课程而不是实例中获取,请参阅documentation of __bases__
:
class.__bases__
类对象的基类的元组。
因此,简而言之,请使用type(X).__bases__
。