class A:
    def __init__(self, x, y):
        self.n = x
        self.inner = B(self, y)

    def f(self):
        return self.n ** 2

class B:
    def __init__(self, outer, y):
        self.outer = outer
        self.n = y

    def f(self):
        return self.outer.f()

a = A(2, 3)
print((a.f(), a.inner.f()))