93
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonの「__init__」とは?ロボットに例えて解説!

Last updated at Posted at 2025-01-25

Pythonでクラスを学ぶと、必ず出てくるのが 「__init__」 という不思議なメソッド。

「これって何をしているの?」
「何のために必要なの?」

そんな疑問を解決するために、今回はロボットを例にしながら、やさしく解説していきます!

🤔 「__init__」ってそもそも何?

Pythonの「__init__」は、クラスから ロボット(オブジェクト)を作ったときに、最初に実行される特別な関数(メソッド) です。

「初期化メソッド」 とも呼ばれ、ロボットが生まれた瞬間に、
名前や型番をセットしたり、動くための準備をするのが役目です。

🦾 クラスをロボット工場に例えてみよう!

Pythonのクラスは、ロボットを作る 工場 だと考えてみてください。

  • クラス → ロボットの設計図(どんな機能を持つか決める)
  • オブジェクト → 実際に工場で製造されたロボット
  • 「__init__」 → ロボットを組み立てる作業(名前や機能を設定する)

つまり、「__init__」がないと、ロボットが 何も設定されていない状態 になってしまうのです。

✍ ロボットの設計図(クラス)を作ってみよう!

class Robot:
    def __init__(self, name, model):
        self.name = name  # ロボットの名前
        self.model = model  # ロボットの型番

    def introduce(self):
        print(f"こんにちは!私はロボット「{self.name}」、型番「{self.model}」です!")

コード中のselfについてわからない方は、以下の記事を参考にしてください。

🏭 ロボットを作ってみよう!

さあ、工場からロボットを製造してみます。

robot1 = Robot("アイボ", "AIBO-1000")  
robot2 = Robot("ペッパー", "PEPPER-2000")  

robot1.introduce()  
# → こんにちは!私はロボット「アイボ」、型番「AIBO-1000」です!

robot2.introduce()  
# → こんにちは!私はロボット「ペッパー」、型番「PEPPER-2000」です!

💡 「__init__」がやっていること

  1. ロボットが 作られた瞬間 に、自動で「名前」と「型番」を設定。
  2. 各ロボットが、異なる情報を持てる ようになる。
  3. 作ったあとに手動で設定する手間を省ける!

「__init__」がないとどうなるの?

もし、「__init__」がなかったら、ロボットは工場から出てきても 空っぽの状態 になります。

class Robot:
    def introduce(self):
        print(f"こんにちは!私はロボット「{self.name}」、型番「{self.model}」です!")

これを実行すると…

robot = Robot()
robot.name = "ソフィア"
robot.model = "SOPHIA-3000"

robot.introduce()  
# → こんにちは!私はロボット「ソフィア」、型番「SOPHIA-3000」です!

⚠️ 手動で設定しないと使えないので不便!
ロボット工場なのに、製品が未完成のまま出荷されてしまうことになります。

🎯 「__init__」の3つの役割

  1. ロボットの初期設定を自動で行う
    名前や型番をすぐ設定できる!
  2. コードのミスを減らす
    毎回手動でデータを入れなくてもOK!
  3. プログラムをシンプルにする
    ロボットの設計がスッキリして分かりやすい!

🛠 デフォルト値を設定してみよう!

時には、ロボットの名前や型番に デフォルト値 を設定したいこともありますよね?
それも「__init__」で解決できます!

class Robot:
    def __init__(self, name="ノーネーム", model="UNKNOWN"):
        self.name = name
        self.model = model

    def introduce(self):
        print(f"こんにちは!私はロボット「{self.name}」、型番「{self.model}」です!")

🦾 デフォルト値を試してみよう!

robot1 = Robot()  
robot2 = Robot("ターミネーター", "T-800")  

robot1.introduce()  
# → こんにちは!私はロボット「ノーネーム」、型番「UNKNOWN」です!

robot2.introduce()  
# → こんにちは!私はロボット「ターミネーター」、型番「T-800」です!

💡 ポイント

引数なしでロボットを作ると、デフォルトの値が入る!
必要な時だけ名前や型番を指定できる!

🚀 「__init__」を使いこなそう!

「__init__」があれば、
たくさんのロボットを効率よく 生産&管理できます!

プログラムの規模が大きくなっても、オブジェクト(ロボット)をしっかり整理できるのが魅力です。

まとめ:__init__ のポイント

  1. クラスを使ってロボットを作ると、 最初に実行される特別な関数!
  2. オブジェクトの 名前や型番などを自動で設定できる!
  3. デフォルト値を使えば、 省略可能なデータも管理しやすい!

これで「__init__」がロボットの組み立てにどれだけ役立つのか、
しっかり理解できましたね!Pythonを使って、
自分だけのロボットをどんどん作ってみてくださいね!🚀

93
87
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?