2016-11-02 5 views
-3

Also mache ich eine Bank-Klasse in Python. Es hat die grundlegenden Funktionen der Einzahlung, Auszahlung und Überprüfung Ihres Guthabens. Ich habe jedoch Probleme mit einer Übertragungsmethode.Transfermethode in Bank-Klasse für Python

Dies ist mein Code für die Klasse.

def __init__(self, customerID): 
    self.ID = customerID 
    self.total = 0 

def deposit(self, amount): 
    self.total = self.total + amount 
    return self.total 

def withdraw(self, amount): 
    self.total = self.total - amount 
    return self.total 

def balance(self): 
    return self.total 

def transfer(self, amount, ID): 
    self.total = self.total - amount 
    ID.total = ID.total + amount 
    return ID.balance() 

Nun, es funktioniert, aber nicht so, wie ich will es. Wenn ich eine Aussage wie diese schreiben, wird es

bank1 = Bank(111) 
bank1.deposit(150) 
bank2 = Bank(222) 
bank1.transfer(50, bank2) 

Aber ich möchte arbeiten können, die Bank-ID-Nummer verwenden, nicht den Namen gab ich es, wenn das Sinn macht? Anstatt also

bank1.transfer(50, bank2) 

sagen, ich will es sagen

bank1.transfer(50, 222) 

Ich habe keine Ahnung, wie dies zu tun.

Antwort

0

Sie könnten alle ID-Nummern und ihre zugehörigen Objekte in einem dict speichern, wobei die ID der Schlüssel und das Objekt der Wert sind.

0
def __init__(self, customerID): 
    self.ID = customerID 
    self.__class__.__dict__.setdefault("idents",{})[self.ID] = self 
    self.total = 0 

@classmethod 
def get_bank(cls,id): 
    return cls.__dict__.setdefault("idents",{}).get(id) 

ist eine Art grobe Art und Weise Sie es

bank2_found = Bank.get_bank(222) 
tun könnte