def deposit(self, amount): if amount <= 0: return "Amount must be positive" self.balance += amount self._log_transaction("DEPOSIT", amount) return f"Deposited $amount. New balance: $self.balance"
This works for a script, but real e-wallet code is much more complex. 1. Concurrency & Race Conditions Imagine two API calls trying to deduct from the same balance at the same time. Without proper locking or database transactions, users could overspend.
self._log_transaction("SEND", amount, recipient_wallet.user_id) recipient_wallet._log_transaction("RECEIVE", amount, self.user_id)