Pythonにおけるオブジェクト

コンストラクタ(initメソッド)

みんな、さっきから出てきている「__init__」というちょっと不思議な名前のメソッド、気になっていたかな?これは「コンストラクタ」と呼ばれる、とっても大切なメソッドなんだ。

「コンストラクタ」は、簡単に言うと「インスタンスが作られたときに、最初に自動で動く特別なメソッド」のことだよ。

例えば、新しいおもちゃのロボットを作ったとき、最初に名前をつけたり、色を決めたりするよね?プログラムでも同じように、インスタンスが作られたときに、そのインスタンスの名前や体力など、最初に決めておきたいことを設定するために使うんだ。

Pythonでは、このコンストラクタのことを「__init__メソッド」と呼ぶよ。アンダースコア(_)が二つ付いているから、ちょっと特別な名前だなってわかるよね。


class Robot:
    # これがコンストラクタ(__init__メソッド)だよ
    def __init__(self, name, color):
        # インスタンスが作られたときに、名前と色をセットするよ
        self.name = name
        self.color = color
        print(self.name + "ロボットが誕生しました!色は" + self.color + "です。")

# 新しいロボットを作ると、自動で__init__メソッドが動くよ
robot1 = Robot("タロウ", "赤")
robot2 = Robot("ハナコ", "青")

# 出力:
# タロウロボットが誕生しました!色は赤です。
# ハナコロボットが誕生しました!色は青です。

インスタンスを生成するときに、カッコの中に渡している「"タロウ"」や「"赤"」といった値が、__init__メソッドのnamecolorに渡されて、それぞれのロボットに設定されているのがわかるかな?

コンストラクタを使うことで、新しく作られたインスタンスが、すぐに使えるように準備されるんだ。これは、オブジェクト指向プログラミングでとってもよく使うものだから、しっかり覚えておいてね!