创建一个名为 `BankAccount` 的类,包含以下属性:`balance` 和 `account_number`。创建一个类方法 `create_account()`,用于创建一个新的银行账户。请给出使用示例。
时间: 2023-10-22 10:09:51 浏览: 349
```python
class BankAccount:
account_number = 0
def __init__(self, balance):
self.balance = balance
BankAccount.account_number += 1
self.account_number = BankAccount.account_number
@classmethod
def create_account(cls, initial_balance):
return cls(initial_balance)
account1 = BankAccount.create_account(1000)
print(f"Account number {account1.account_number} has a balance of {account1.balance}")
account2 = BankAccount.create_account(5000)
print(f"Account number {account2.account_number} has a balance of {account2.balance}")
```
输出:
```
Account number 1 has a balance of 1000
Account number 2 has a balance of 5000
```
相关问题
定义一个类 BankAccount,具有属性 balance 和 account_number,以及方法 deposit(amount,account_number) 和 withdrawal(amount,account_number) 函数
定义一个名为 "BankAccount" 的类,用于模拟银行账户,包含余额 (balance) 和账户号 (account_number) 这两个属性。同时,我们为这个类提供两个方法:存款 (deposit) 和取款 (withdrawal),分别用于增加和减少账户余额。以下是具体的代码实现:
```python
class BankAccount:
def __init__(self, balance, account_number):
self.balance = balance
self.account_number = account_number
def deposit(self, amount, account_number=None):
"""
存款功能,如果传入了 account_number,检查是否与当前账户一致,否则默认使用类的账户号
"""
if account_number is None or account_number == self.account_number:
self.balance += amount
print(f'已成功存入 {amount} 元,当前余额为 {self.balance} 元')
else:
print("错误:尝试存款到非本账户.")
def withdrawal(self, amount, account_number=None):
"""
取款功能,同存款一样处理账户验证
"""
if account_number is None or account_number == self.account_number:
if self.balance >= amount:
self.balance -= amount
print(f'已成功取出 {amount} 元,当前余额为 {self.balance} 元')
else:
print("错误:余额不足,无法完成取款.")
else:
print("错误:尝试取款到非本账户.")
# 使用示例
account1 = BankAccount(1000, '123456789')
account1.deposit(500)
account1.withdrawal(300)
```
定义一个类 BankAccount ,具有属性 balance 和 account _ number ,以及方法 deposit ( amount ,account _ number )和 withdrawal ( amount ,account _ number )函数。
好的,我们可以定义一个名为 `BankAccount` 的类,用于表示银行账户,它有两个属性 `balance` 表示账户余额,`account_number` 表示账户号码,同时提供两个方法 `deposit()` 和 `withdrawal()` 分别用于存款和取款操作。下面是具体的代码:
```python
class BankAccount:
def __init__(self, balance=0, account_number=None):
"""
初始化一个银行账户,设置初始余额和账户号码。
参数:
balance -- 初始余额,默认为0
account_number -- 账户号码,默认为None,需要在实例化时提供
"""
self.balance = balance
self.account_number = account_number
def deposit(self, amount, account_number=None):
"""
存款方法,将指定金额存入账户。
参数:
amount -- 需要存款的金额
account_number -- 可选的账户号码,如果不传递则默认当前账户
"""
if account_number and account_number != self.account_number:
raise ValueError("Invalid account number")
self.balance += amount
def withdrawal(self, amount, account_number=None):
"""
提现方法,从账户中取出指定金额。
参数:
amount -- 可选的账户号码,如果不传递则默认当前账户
"""
if account_number and account_number != self.account_number:
raise ValueError("Invalid account number")
if self.balance < amount:
raise InsufficientBalanceError("Insufficient balance")
self.balance -= amount
# 示例用法
account = BankAccount(account_number="123456789")
account.deposit(1000)
account.withdrawal(500)
```
在这个类中,`deposit()` 和 `withdrawal()` 方法都允许传入账户号码进行校验,防止非法操作。如果尝试对错误的账户进行存款或取款,会抛出异常。
阅读全文