clases anidadas de python

En primer lugar, aquí está mi código de prueba, estoy usando python 3.2.x:

class account:
    def __init__(self):
        pass

    class bank:
        def __init__(self):
            self.balance = 100000

        def balance(self):
            self.balance

        def whitdraw(self, amount):
            self.balance -= amount

        def deposit(self, amount):
            self.balance += amount

Cuando lo hago:

a = account()
a.bank.balance

Esperaba obtener el valor del saldo devuelto, en lugar de eso obtengo la función "saldo", ¿por qué sucede esto? Devuelve el valor de balance cuando lo hago:

class bank:
    def __init__(self):
        self.balance = 100000

    def balance(self):
        self.balance

    def whitdraw(self, amount):
        self.balance -= amount

    def deposit(self, amount):
        self.balance += amount

a = bank()
a.balance

Así que quiero saber por qué esto es así y sería genial si alguien pudiera encontrar una manera de darme el valor del equilibrio en la versión anidada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta