今回やること
Pythonのクラスは、同じ形のデータと処理をまとめる設計図です。クラスから作った1つずつの実体をインスタンスと呼び、__init__ で最初の属性を設定します。
クラスは、データと処理をひとまとまりにするための仕組みです。
最初は「設計図からデータのまとまりを作る」と考えると理解しやすいです。
今回は、class、__init__、メソッドを練習します。
クラスを作る
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
__init__ は、作成時に最初に実行される特別なメソッドです。
オブジェクトを作る
student = Student("Ada", 90)
print(student.name)
print(student.score)
クラスから作った実体をオブジェクトと呼びます。
ada = Student("Ada", 90)
taro = Student("Taro", 55)
print(ada.name)
print(taro.name)
Ada と Taro が別々に表示されれば、同じクラスから独立したインスタンスを作れています。
メソッドを作る
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def is_passed(self):
return self.score >= 60
student = Student("Ada", 90)
print(student.is_passed())
クラスの中に書いた関数をメソッドと呼びます。
self は、メソッドを呼び出したインスタンス自身を表します。関数の作り方が不安な場合は Python入門 #5 - 関数の基本 を先に復習してください。小さなデータだけなら辞書と関数で十分な場合もあるため、Pythonの辞書操作 と比べて選びます。
いつ使うか
| 使う場面 | 例 |
|---|---|
| データと処理をまとめたい | 学生、商品、タスク |
| 同じ形のデータを複数作る | 複数の学生 |
| 関数だけでは散らかる | 状態を持つ処理 |
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
NameError | クラス名を間違えた | 大文字小文字を確認 |
TypeError | 引数の数が違う | __init__ を確認 |
self が分からない | 自分自身を表す約束 | メソッドの第1引数に書く |
練習
Studentクラスを作る- 名前と点数を持たせる
- 合格判定メソッドを作る
- 学生を2人作って結果を表示する
次のステップ
ここまでの文法を使って Pythonミニ制作:じゃんけんゲーム に進みます。