Pythonでクラスとメソッドを使ったシンプルな銀行口座管理システムを実現するためのプログラム

スポンサーリンク

Pythonでクラスとメソッドを使ったシンプルな銀行口座管理システムを実現するためのプログラムを作ってみます。

■Python

Google Colaboratory(Google Colab),2023年3月18日時点ではPython 3.9.16が用いられる。

■クラスとメソッドを使ったシンプルな銀行口座管理システムを実現するためのプログラムの作成

では、早速クラスとメソッドを使ったシンプルな銀行口座管理システムを実現するためのプログラムの作成を行っていきます。ので、コードを書きます。

■コード

class BankAccount:
  def __init__(self, name, balance):
    self.name = name
    self.balance = balance

  def deposit(self, amount):
    self.balance += amount
  
  def withdraw(self, amount):
    if amount > self.balance:
      print("残高不足です!")
    else:
      self.balance -= amount

  def get_balance(self):
    return self.balance
  
  def get_name(self):
    return self.name

account1 = BankAccount("田中テスト太郎", 1000)
print(account1.get_name(), "の口座残高は", account1.get_balance(), "円です。")

account1.deposit(500)
print(account1.get_name(), "が500円を預けました。新しい残高は", account1.get_balance(), "円です。")

account1.withdraw(200)
print(account1.get_name(), "が200円を引き出しました。新しい残高は", account1.get_balance(), "円です。")

account1.withdraw(2000)
print(account1.get_name(), "が2000円を引き出そうとしました。新しい残高は", account1.get_balance(), "円です。")

BankAccountというオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。定義後、クラス内にdef文を用いて’__init__’と記述し、コンストラクタを使います。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2,第3の引数,パラメータとしてname, balanceを設定します。なお、最初の「self(自己)」という引数,パラメータを介して、「name」、「balance」というクラスのインスタンス変数が初期化されます。この時にself(自己)に対してドット演算子( . )を用いて「name」、「balance」を指定します。

次にdef文を用いてdeposit()(預金,デポジット)というメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとして「amount(金額、額)」を渡します。このメソッドが呼び出された時の処理として、クラス内のインスタンスの属性として保存されているself.balanceを参照し、累算代入演算子”+=(プラスイコール)”を用いてself.balance変数に、amountの値を加えた結果を、self.balanceの変数に格納するという処理を記述します。

次にdef文を用いてwithdraw()(預金を引き出す)というメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとして「amount(金額、額)」を渡します。このメソッドが呼び出された時の処理としてif文を用いて、amountがself.balanceよりも大きい場合にもし真(True)であればprint()で文字列が出力されます。そしてそれ以外の場合にはself.balance内の値からamount内の値を減算(引き算)するという処理を記述します。

次にdef文を用いてget_balance()(銀行口座の残高照会)というメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。このメソッドが呼び出された時の処理としてreturnでクラス内のインスタンスの属性として保存されているself.balanceの値を返すという処理を記述します。

次にdef文を用いてget_name()(口座名義人の名前)というメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。このメソッドが呼び出された時の処理としてreturnでクラス内のインスタンスの属性として保存されているself.nameの値を返すという処理を記述します。

メソッドを定義後、account1という変数を定義し、その中にBankAccount()を格納し、インスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内にアクセスできるようになりました。インスタンス化された後に、括弧内に第1の引数,パラメータとして口座名義人の名前を渡します。次に第2の引数,パラメータとして口座に初期残高として設定する金額を渡します。

最後に作成したオブジェクトであるaccount1に対してドット演算子( . )を用いて、deposit()(預金,デポジット)や、withdraw()(預金を引き出す)のメソッドを呼び出し、括弧内に引数,パラメータとして金額を渡してみます。そして、作成したオブジェクトであるaccount1に対してドット演算子( . )を用いてget_balance()(銀行口座の残高照会)を呼び出し、print()で残高を出力してみます。

■実行・検証

このコード(セル)を保存し、Google Colaboratory上で、セルを実行してみます。

実行してみると、クラス内に定義したメソッドで預金したり、預金を引き出したりすることができ、最終的に自分の口座の残高がいくらなのかもメソッドを呼び出すことで、残高を確認することができました。

コメント

タイトルとURLをコピーしました