所以,我正在python中创建一个Bank类。它具有存款,取款和检查余额的基本功能。我遇到了传输方法的问题。
这是我的课程代码。
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()
现在,它有效,但不是我想要的方式。 如果我写这样的声明,它就会起作用
bank1 = Bank(111)
bank1.deposit(150)
bank2 = Bank(222)
bank1.transfer(50, bank2)
但我希望能够使用银行的身份证号码,而不是我给它的名字,如果这有意义吗?所以不要说
bank1.transfer(50, bank2)
我想说它
bank1.transfer(50, 222)
我根本不知道该怎么做。
答案 0 :(得分:0)
您可以将所有ID号及其相关对象存储在dict中,ID为键,对象为值。
答案 1 :(得分: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)
是你可以做到的一种粗暴方式
bank2_found = Bank.get_bank(222)