Python函数在2个用户之间发送东西?

时间:2018-02-28 15:01:47

标签: python-3.x python-2.7 function

我正在尝试学习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()

我知道这可能是基本的,但我希望我能在这里得到帮助。

谢谢

1 个答案:

答案 0 :(得分:2)

您已经拥有depositwithdraw方法,因此您也可以使用它们。

转移资金实际上是从一个帐户中提取并存入另一个帐户。

这可以通过一个接受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