银行业务队列简单模拟puthon
时间: 2024-12-17 11:19:21 浏览: 12
在Python中,我们可以使用内置的数据结构如列表、队列(queue)模块或者更高级的生产者-消费者模型(如`multiprocessing.Queue`)来模拟银行业务队列。这里是一个简单的例子,展示如何创建一个队列来处理银行交易请求:
```python
import queue
class BankQueue:
def __init__(self):
self.transaction_queue = queue.Queue()
# 向队列添加新的交易请求
def put(self, transaction):
if isinstance(transaction, (Deposit, Withdrawal)): # 确保交易是存款或取款操作
self.transaction_queue.put(transaction)
# 从队列中取出并处理交易
def process_transaction(self):
while True:
try:
transaction = self.transaction_queue.get(True) # 获取阻塞直到有交易
transaction.execute() # 模拟执行交易操作
except queue.Empty:
break # 如果队列空了,则退出循环
# 定义交易类,比如存款(Deposit)和取款(Withdrawal)
class Deposit:
def __init__(self, amount):
self.amount = amount
def execute(self):
print(f"存入 {self.amount} 元")
class Withdrawal:
def __init__(self, amount):
self.amount = amount
def execute(self):
if self.amount > 0: # 检查余额足够
print(f"取款 {self.amount} 元")
else:
print("账户余额不足,无法完成取款")
# 使用示例
bank_queue = BankQueue()
bank_queue.put(Deposit(500))
bank_queue.put(Withdrawal(200))
bank_queue.process_transaction()
```
在这个例子中,交易请求被放入队列中,然后在`process_transaction`函数中按顺序执行。银行队列起到了缓冲作用,确保了交易的顺序执行。
阅读全文