我正在尝试学习python(以及一般的编程)。目前我正在尝试建立一个简单的银行,用户可以在那里发送/存款/取款。 我已经创建了存款和取款功能,并且正在运作。现在我对如何编写发送功能感到困惑,因为用户将汇款而另一个将收到钱。 我应该写两个单独的函数发送和接收,但那么如何在同一时间触发两个? (包含两者的另一个函数)?
我希望你能帮助我, 到目前为止这是我的代码: 类:
class Account(object):
def __init__(self, name, account_number, initial_amount):
self.name = name
self.no = account_number
self.balance = initial_amount
def deposit(self, amount):
self.balance += amount
def withdraw(self, amount):
self.balance -= amount
def dump(self):
s = '%s, %s, balance: %s' % \
(self.name, self.no, self.balance)
print s
def get_balance(self):
print(self.balance)
def send(self, sender, receiver, amount):
self.sender = sender
self.receiver = receiver
self.balance -= amount
main.py:
from classes.Account import Account
a1 = Account('John Doe', '19371554951', 20000)
a2 = Account('Jenny Doe', '19371564761', 20000)
a1.deposit(1000)
a1.withdraw(4000)
a2.withdraw(10500)
a2.withdraw(3500)
a1.get_balance()
我知道这可能是基本的,但我希望我能在这里得到帮助。
谢谢
答案 0 :(得分:2)
您已经拥有deposit
和withdraw
方法,因此您也可以使用它们。
转移资金实际上是从一个帐户中提取并存入另一个帐户。
这可以通过一个接受2个帐户的静态方法来实现,而这个方法将包含“转移”的概念:
class Account:
.
.
.
@staticmethod
def transfer(from_account, to_account, amount):
from_account.withdraw(amount)
to_account.deposit(amount)
# TODO perhaps you will want to use a try-except block
# to implement a transaction: if either withdrawing or depositing
# fails you will want to rollback the changes.
用法:
from classes.Account import Account
a1 = Account('John Doe', '19371554951', 20000)
a2 = Account('Jenny Doe', '19371564761', 20000)
print(a1.balance)
print(a2.balance)
Account.transfer(a1, a2, 10)
print(a1.balance)
print(a2.balance)
# 20000
# 20000
# 19990
# 20010