2010-06-12 4 views
0
class Account: 
    def __init__(self, initial): 
     self.balance = initial 
     def deposit(self, amt): 
      self.balance = self.balance + amt 
     def withdraw(self,amt): 
      self.balance = self.balance - amt 
     def getbalance(self): 
      return self.balance 

a = Account(1000.00) 
a.deposit(550.23) 
a.deposit(100) 
a.withdraw(50) 

print a.getbalance() 

Je reçois cette erreur quand je lance ce code .. AttributeError: Compte instance n'a pas d'attribut « dépôt »AttributeError AIDE!

+0

Votre indentation est erronée. –

Répondre

2

Alors, que les réponses ci-dessus signifie qu'au lieu de votre code devrait être comme ça - ne pas oublier la différence d'autres langues, le retrait est une affaire sérieuse en Python:

class Account(object): 

    def __init__(self, initial): 
     self.balance = initial 

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

    def withdraw(self, amt): 
     self.balance -= amt 

    def getbalance(self): 
     return self.balance 

a = Account(1000.00) 
a.deposit(550.23) 
a.deposit(100) 
a.withdraw(50) 

print a.getbalance() 

et maintenant vous aurez 1600,23 au lieu d'une erreur .

5
class Account: 
    def __init__(self, initial): 
     self.balance = initial 
    def deposit(self, amt): 
     self.balance = self.balance + amt 
    def withdraw(self,amt): 
     self.balance = self.balance - amt 
    def getbalance(self): 
     return self.balance 

La façon dont vous les avez définies, ils étaient locaux à la méthode __init__, et donc inutile .

2

Vous les avez indentés trop profondément. Ce sont les fonctions internes de la méthode __init__().

0

En plus de ce que les autres ont fait remarquer:

Vous ne l'avez pas montré correctement le code que vous avez réellement exécuté. Ce qui apparaît ici a le def __init__ ... au même niveau que l'instruction class; cela aurait provoqué une erreur de syntaxe (compilation) et non une erreur d'exécution (exécution).

Questions connexes