如何使嵌套类继承?

时间:2014-06-09 09:19:13

标签: python class inheritance nested

我正在尝试在另一个类中初始化一个继承类,但它不起作用,我不知道如何解决。

我读过here继承通常按照以下方式运作:

class Foo(object):
    def __init__(self, text):
        print text

class Bar(Foo):
    def __init__(self, text):
        super(Bar, self).__init__(text)

但是,如果我将Bar - 类放入另一个类中,则代码将不再起作用。

class Whatever(object):
    class Bar(Foo):
        def __init__(self, text):
            super(Bar, self).__init__(text)

    def __init__(self, text):
        test = self.Bar(text)

Python与命名空间混淆:

super(Bar, self).__init__(text)
NameError: global name 'Bar' is not defined

怎么办?谢谢!

1 个答案:

答案 0 :(得分:1)

问题解决了。

您必须使用Bar来引用Whatever.Bar,所以它看起来像这样:

class Whatever(object):
    class Bar(Foo):
        def __init__(self, text):
            super(Whatever.Bar, self).__init__(text)

    def __init__(self, text):
        test = self.Bar(text)