class Account(object):
def __init__(self,holder, number, balance, credit_line = 1500):
self.holder = holder
self.number = number
self.balance = balance
self.credit_line = credit_line
def deposit(self, amount):
self.balance = amount
def withdraw(self, amount):
if(self.balance - amount < -self.credit_line):
return False
else:
self.balance -= amount
return True
def balance(self):
return self.balance
def holder(self):
return self.holder
def transfer(self, target, amount):
if(self.balance - amount < -self.credit_line):
#coverage insufficient
return False
else:
self.balance -= amount
target.balance += amount
return True
Guido = Account("Guido", 10 ,1000.50)
Guido.balance()
-------------------------------------------------------------------------
Traceback (most recent call last):
File "Account.py", line 31, in <module>
Guido.balance()
TypeError: 'float' object is not callable
-2
A
Antwort
1
Sie überschreiben Methode balance
in Ihrer __init__
Methode. Sie könnten entweder den Feldnamen in _balance
ändern oder einfach balance
entfernen und Guido.balance
verwenden.
Beachten Sie auch, dass Sie Ihre Variablen beginnend mit Kleinbuchstaben Name sollte (dh guido = Account(...)
, nicht Guido
)
0
class Account(object):
def __init__(self,holder, number, balance, credit_line = 1500):
self.holder = holder
self.number = number
self.balance = balance
self.credit_line = credit_line
def deposit(self, amount):
self.balance = amount
def withdraw(self, amount):
if amount > self.balance:
print "Amount greater than available balance"
else:
self.balance -= amount
return True
def bala_nce(self):
return self.balance
def hold_er(self):
return self.holder
def num(self):
return self.number
def transfer(self, target, amount):
if(self.balance - amount < -self.credit_line):
#coverage insufficient
return False
else:
self.balance -= amount
target.balance += amount
return True
guido = Account("Guido", 10 ,10000.100)
guido.withdraw(2300.100)
print "Account name: " ,guido.hold_er()
print "available balance: $",guido.bala_nce()
thanx Sie bald ............... es funktioniert jetzt
Verwandte Themen
- 1. Wie mache ich "text-overflow: ellipsis" sowohl für "float: left" als auch für "float: right" div?
- 2. Brauche ich sowohl jdk als auch jre?
- 3. DOMPDF Seitenausrichtung sowohl Querformat als auch Hochformat
- 4. Warum verwendet os.path sowohl '\' als auch '/'?
- 5. Warum ist float() schneller als int()?
- 6. Vergleichen Float-Array als int-Array
- 7. Python TypeError: nicht unterstützte Operandentyp (en) für ^: 'float' und 'int'
- 8. Webpack: TypScript-Modul sowohl "normal" als auch als Rohzeichenfolge importieren
- 9. autowiring Bohnen instanziiert sowohl einzeln als auch als Liste
- 10. Ein weiteres 'NSUInteger *' (auch bekannt als 'unsigned int *') vs 'NSUInteger' (auch bekannt als 'unsigned int')
- 11. Wie Sie sowohl String als auch Double in Java
- 12. Warum funktioniert meine variadische Funktion sowohl mit int als auch mit long long?
- 13. Python - Wie sowohl int als auch gmpy/mpz ohne Funktionsüberlastung umgehen?
- 14. C Programmierung von Multidimensionalen Arrays - Speichere sowohl "int" als auch "char" in Spalten
- 15. Umwandlung int float/double
- 16. Typeerror Float nicht einklagbar
- 17. float/int implizite Konvertierung
- 18. Sowohl Dns.GetHostAddress als auch Dns.GetHostEntry geben nur die IPv4-Adresse zurück. Wie bekomme ich sowohl ipv4- als auch ipv6-Adressen?
- 19. Preferences API funktioniert sowohl auf Android als auch auf PC
- 20. C#: Objekt ist sowohl null als auch nicht null
- 21. C++ Float zu Int
- 22. Haskell int float und char float
- 23. Sie können sowohl filtern als auch in ddply zusammenfassen?
- 24. Sie müssen sowohl MouseAdapter als auch KeyAdapter erweitern
- 25. HTML5 getUserMedia Webcam aufnehmen, sowohl Audio als auch Video
- 26. Warum liefert Data.Set sowohl elems als auch toList?
- 27. Wie installiere ich sowohl java7 als auch java 8?
- 28. JPA: Id Spalte einstellbar sowohl automatisch als auch manuell
- 29. prägnante CSS sowohl aktuelle als auch untergeordnete Elemente wählen
- 30. Kann Hyperlinktext sowohl Wörter als auch dekorative Bilder enthalten?
'self.balance = amount' überschreibt die' balance' Funktion –
Die anderen Antworten haben das Problem erklärt, aber ich möchte nur sagen, dass "Accessoren" wie Ihre "Balance" und "Halter" -Methoden sind nicht in Python benötigt. Sie können Ihren externen Code direkt auf das Attribut (in diesem Fall den gleichen Namen, der zu dem Problem führt) zugreifen. Wenn Sie später feststellen, dass Sie eine spezielle Verarbeitung für den Wert durchführen müssen (z. B. auf eine bestimmte Anzahl von Dezimalstellen abrunden), können Sie eine Attributeigenschaft verwenden, um die Attributsuche in einen Funktionsaufruf umzuwandeln. – Blckknght