#73

__init__ と属性(状態を持たせる)

インスタンスごとに別々のデータ(属性)を持たせる初期化のしくみを学ぶ。

解説

クラスから作ったインスタンスに、自分専用のデータ(属性)を持たせましょう。 __init__ は「インスタンスを作るときに最初に自動で呼ばれる」特別なメソッドで、初期化(initialize)を担当します。Student("佐藤", 80) のように作るとき、カッコ内の値が __init__ の引数として渡されます。 メソッドの中で self.name = name のように書くと、そのインスタンスに name という属性が保存されます。a.name のように「インスタンス.属性名」で取り出せます。 大切なのは、インスタンスごとに別々の状態を持つことです。a の点数を変えても b には影響しません。これが「データと処理をひとまとめにする」オブジェクトの利点です。

書き方

def __init__(self, 引数...): — インスタンス生成時に自動で呼ばれる初期化メソッド。
・self.属性名 = 値: そのインスタンスに属性(データ)を持たせる。
・生成: クラス名(引数...) のカッコ内が __init__ の引数になる。
・参照/更新: インスタンス.属性名 で読み書きする。
・インスタンスごとに状態は独立している。

書いて動かす

この回の課題

Student クラスに __init__ で name と score を持たせ、2人分のインスタンスを作って表示し、片方の点数だけ書き換えてみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。