Te doy la bienvenida a proyecto on line, en este sitio encontrarás la respuesta que andabas buscando.
Solución:
Mi versión de tu código, con comentarios:
#
# 1. CamelCasing for classes
#
class Account:
def __init__(self):
# 2. to refer to the inner class, you must use self.Bank
# 3. no need to use an inner class here
self.bank = self.Bank()
class Bank:
def __init__(self):
self.balance = 100000
# 4. in your original code, you had a method with the same name as
# the attribute you set in the constructor. That meant that the
# method was replaced with a value every time the constructor was
# called. No need for a method to do a simple attribute lookup. This
# is Python, not Java.
def withdraw(self, amount):
self.balance -= amount
def deposit(self, amount):
self.balance += amount
a = Account()
print(a.bank.balance)
Hay varios problemas:
- Estás usando el nombre
balance
tanto para el miembro de datos como para la función. - Te estás perdiendo un
return
declaración enbalance()
. balance()
opera en un ejemplo debank
. No hay instancia ena.bank.balance
: aquí,a.bank
se refiere a la propia clase interna.
Sección de Reseñas y Valoraciones
Nos puedes añadir valor a nuestra información cooperando tu experiencia en las reseñas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)