请按照以下要求设计一个银行卡类。要求如下: 属性:账户名,余额 方法: 0. 通过init实现属性初始化 1. 存款(金额), 2. 取款(金额), 3. 转账(card) 给card转账xx钱,对应的余额属性要减少 4. 打印对象要显示所有属性信息
时间: 2024-02-14 15:06:11 浏览: 22
好的,按照您的要求,我来为您设计一个银行卡类:
```python
class BankCard:
def __init__(self, account_name, balance):
self.account_name = account_name
self.balance = balance
def deposit(self, amount):
self.balance += amount
print(f"Deposit {amount} dollars successfully. Current balance is {self.balance} dollars.")
def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
print(f"Withdraw {amount} dollars successfully. Current balance is {self.balance} dollars.")
else:
print("Insufficient balance.")
def transfer(self, card, amount):
if self.balance >= amount:
self.balance -= amount
card.balance += amount
print(f"Transfer {amount} dollars to {card.account_name} successfully.")
else:
print("Insufficient balance.")
def __str__(self):
return f"Account Name: {self.account_name}\nBalance: {self.balance} dollars."
# 测试
my_card = BankCard("Tom", 1000)
print(my_card)
my_friend_card = BankCard("Jerry", 500)
print(my_friend_card)
my_card.deposit(500)
my_card.withdraw(200)
my_card.transfer(my_friend_card, 300)
print(my_card)
print(my_friend_card)
```
在这个BankCard类中,我们定义了两个属性account_name和balance,分别表示账户名和余额。同时,我们定义了四个方法:deposit、withdraw、transfer和__str__。其中,deposit和withdraw分别表示存款和取款,transfer表示转账,__str__重载了打印对象时的输出信息。
我们创建了一个BankCard类实例my_card,并调用它的deposit、withdraw和transfer方法进行测试。最后,我们打印了my_card和my_friend_card的属性信息。
运行结果如下:
```
Account Name: Tom
Balance: 1000 dollars.
Account Name: Jerry
Balance: 500 dollars.
Deposit 500 dollars successfully. Current balance is 1500 dollars.
Withdraw 200 dollars successfully. Current balance is 1300 dollars.
Transfer 300 dollars to Jerry successfully.
Account Name: Tom
Balance: 1000 dollars.
Account Name: Jerry
Balance: 800 dollars.
```