みんな、さっきから出てきている「__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__
メソッドのname
やcolor
に渡されて、それぞれのロボットに設定されているのがわかるかな?
コンストラクタを使うことで、新しく作られたインスタンスが、すぐに使えるように準備されるんだ。これは、オブジェクト指向プログラミングでとってもよく使うものだから、しっかり覚えておいてね!