您正在寻找的东西有点令人困惑,特别是您是否希望 main 和 sub 的实例被“嵌套”,或者您实际上是否想要嵌套类,这是一件非常不寻常的事情。你不能有一个嵌套类来继承它的封闭类
您可以复制我认为您正在尝试使用简单组合进行的操作:
class Main(object):
def __init__(self):
self.foo = 'bar'
baz = Helper(self)
class Helper(object):
def __init__(self, parent):
self.parent = parent
print(parent.foo) # Access to members of Main through parent reference
if __name__ == "__main__":
x = Main()
我调用了辅助类助手,因为它不是子类,它只是一个助手类。这有点可疑。如果这两个类如此紧密耦合,它们之间总是存在 1:1 的关系,并且它们都需要持有对另一个的引用,那么不清楚为什么它们是单独的类。你也可以用常规继承做类似的事情,我认为这可能更像你想要的。
class Main(object):
def __init__(self):
self.foo = 'bar'
class Sub(main):
def __init__(self):
super(Sub, self).__init__()
print(self.foo) # All attributes defined by main exist in sub
if __name__ == "__main__":
Sub()
请注意,我们构造了包含主类以及它自己的所有行为的子对象。无论如何,我希望这会有所帮助。如果您可以更新您的问题以解释您想要的行为与这些行为有何不同,我们可以从那里开始。