メソッド
CoddyのPythonジャーニー「Object Oriented Programming」セクションの一部 — レッスン 5/64。
メソッドは、クラスに属する関数です。これらは、オブジェクトが実行できる振る舞いやアクションを定義します。
メソッドを持つクラスの例を以下に示します:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultcalculatorオブジェクトを作成します:
my_calc = Calculator()引数を必要としないメソッドを呼び出します:
my_calc.greet()パラメータを指定してメソッドを呼び出します:
sum_result = my_calc.add(5, 3)
print(sum_result)値を出力し、かつ値を返すメソッドを呼び出します:
product = my_calc.multiply(4, 7)出力:
Hello! I'm a calculator.
8
4 × 7 = 28メソッドは以下のことができます:
add(self, a, b)のように引数を受け取るreturn a + bのように値を返すprint("Hello!")のように直接出力を表示する- 表示と返却の両方を行う
重要ポイント: メソッドは、オブジェクトができることを定義します。常に最初のパラメータとして self を含めますが、メソッドを呼び出すときには渡さないでください。
チャレンジ
簡単このチャレンジでは、銀行システムを実装します。1つのファイルで BankAccount クラスを作成し、別のファイルでそれを使用することで、保守性を高めるためにコードをどのように整理するかを学びます。
2つのファイルを操作する必要があります:
- bank_account.py:
BankAccountクラスを定義する場所 - driver.py: クラスをインポートし、アカウントを作成して、取引を実行する場所
bank_account.py に以下の内容で BankAccount クラスを作成してください:
- クラス属性
bank_nameを "Python National Bank" に設定します - 金額を受け取り、それをアカウントの残高に加算するメソッド
deposit - 金額を受け取り、それを残高から差し引くメソッド
withdraw - 現在の残高を返すメソッド
get_balance
次に driver.py で、BankAccount クラスをインポートし、アカウントを作成して、$100を預け入れ(deposit)、$30を引き出し(withdraw)、次の形式で残高を表示してください:f"Current balance: ${my_account.get_balance()}"
チートシート
メソッドはクラスに属する関数であり、オブジェクトができることを定義します。
クラス内でメソッドを定義する:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultオブジェクトを作成し、メソッドを呼び出す:
my_calc = Calculator()
my_calc.greet()
sum_result = my_calc.add(5, 3)
product = my_calc.multiply(4, 7)メソッドは以下のことができます:
- パラメータを受け取る:
add(self, a, b) - 値を返す:
return a + b - 出力を表示する:
print("Hello!") - 表示と返却の両方を行う
重要なポイント: メソッドの定義では常に最初のパラメータとして self を含めますが、メソッドを呼び出すときには渡しません。
自分で試してみよう
from bank_account import BankAccount
# アカウントを作成し、メソッドをテストします
my_account = BankAccount()
my_account.balance = 0 # 開始残高
# TODO: 取引を行う
# (ここにコードを記述)
# TODO: 最終残高を表示する
# (ここにコードを記述)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。