J'ai travaillé sur l'amélioration de l'utilisation de classes et d'objets à Python, mais j'ai eu du mal à afficher les valeurs d'objets différents de mes programmes. J'étais enseigné par mon instructeur que l'utilisation de la fonction # the class of the bank account
class BankAccount:
def __init__(self, bal):
self.__balance = bal
# deposits the amount given by the user
def deposit(self, amount):
self.__balance += amount
# withdraws the amount given by the user
def withdraw(self, amount):
if(self.__balance >= amount):
self.__balance -= amount
else:
print("Error: Insufficient funds")
# returns the current balance of the user's account
def get_balance(self):
return self.__balance
# sets the user's account given a specified balance
def set_balance(self, bal):
self.__balance = bal
# prints the user's balance
def __str__(self):
return "The balance is $" + format(self.__balance, ",.2f")
def main():
start_bal = float(input("Enter your starting balance: ")) # retrieves balance from the user
savings = BankAccount(start_bal) # creates an object that hold's the user's balance
print(savings)
main()
3 Réponses :
Vous devez écraser le Il suffit de nier votre méthode correctement dans votre classe p> p> __ str __ code> Opérateur de votre BankAccount Code> Classe:
C'est un problème d'indentation, votre classe est définie comme celle-ci uniquement:
# the class of the bank account
class BankAccount:
def __init__(self, bal):
self.__balance = bal
# deposits the amount given by the user
def deposit(self, amount):
self.__balance += amount
# withdraws the amount given by the user
def withdraw(self, amount):
if(self.__balance >= amount):
self.__balance -= amount
else:
print("Error: Insufficient funds")
# returns the current balance of the user's account
def get_balance(self):
return self.__balance
# sets the user's account given a specified balance
def set_balance(self, bal):
self.__balance = bal
# prints the user's balance
def __str__(self):
return "The balance is $" + format(self.__balance, ",.2f")
def main():
start_bal = float(input("Enter your starting balance: ")) # retrieves balance from the user
savings = BankAccount(start_bal) # creates an object that hold's the user's balance
print(savings)
main()
Lorsque l'appel est principal et dans l'impression (économies) est exécuté, il imprime la représentation STR de la classe BankAccount, qui est l'adresse de la mémoire d'épargne, puis puisque votre implémentation Essayez ceci: p>
Vous avez un problème avec le formatage, besoin d'indenter defs
Ces fonctions ne sont pas à l'intérieur de la classe, seulement
__ init __ code> est dans votre classe, vous devez formater votre code correctement.Merci tous étaient corrects! Cependant, j'ai une question. Savez-vous pourquoi les fonctions doivent être en retrait dans la classe? Pourquoi ne suis-je pas capable de les utiliser correctement, même s'ils ont été déclarés au sein du programme?