__bases__不能使用Python 3.5吗?

时间:2017-06-29 09:55:48

标签: python python-3.x

我在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__'

有人可以向我解释为什么会发生这种情况,我怎么能(如果不是这样)获得给定类的超类的实例?

谢谢大家:)

1 个答案:

答案 0 :(得分:1)

您可以从课程而不是实例中获取,请参阅documentation of __bases__

  

class.__bases__

     

类对象的基类的元组。

因此,简而言之,请使用type(X).__bases__