← トップ
6 / 10

6. __init__ と self(初期設定)

CONCEPT

__init__イニット — 初期化メソッド はクラスからオブジェクトを作るときの「初期設定」メソッド。selfセルフ — 自分自身 は「自分自身」を指す言葉で、自分のデータにアクセスするために使います。

📍 使い道: クラスの初期設定(コンストラクタ)の書き方
COMMON MISTAKES — よくある間違い
self に別の名前を付ける技術的には可能ですが、Pythonの慣習として第一引数は必ず self にします。
__init__ の中で self. を付け忘れるself.name = name ではなく name = name と書くと、引数を上書きするだけでインスタンス変数に保存されません。
コードを1行ずつ実行してみよう
example.pyPython
1class Dog:# class Dog: を定義(設計図を作る)
2 def __init__(self, name, age):# __init__ メソッドの定義
3 self.name = name# self.name = "ポチ" を保存
4 self.age = age# self.age = 3 を保存
5pochi = Dog("ポチ", 3)# pochi = Dog("ポチ", 3) でオブジェクト完成
« 次の行 » ボタンを押して実行を開始
VARIABLES
実行すると変数の状態が表示されます
__init__ は「インスタンス作成時に自動で呼ばれる初期設定メソッド」です。 self は「自分自身(そのインスタンス)」を指す特別な変数です。 self.name = name で「このインスタンスのname属性にnameを保存」します。
📚 読み方ガイド
コード読み方
class Dog:Dog という設計図を定義する
def __init__(self, name):__init__イニット — 初期化メソッド初期設定メソッド。selfセルフ — 自分自身 は必ず第1引数
self.name = name受け取った nameネーム — 名前 を自分(selfセルフ — 自分自身)のデータに保存
pochi = Dog("ポチ", 3)__init__ が自動で呼ばれ、pochi が作られる
KEY POINT

__init__イニット — 初期化メソッド は initialize(初期化)の略。selfセルフ — 自分自身 はメソッドの第1引数として必ず書く。self.変数名 でデータを保存し、クラス名() を呼んだときに __init__ が自動で実行される。

確認問題
1self を書かないとどうなる?
class Bad: def __init__(name, age): # self がない self.name = name
TypeError になります。selfセルフ — 自分自身 がないと、Python は第1引数にクラス自身を渡せず、引数の数が合わないというエラーになります。
2次のコードで pochi.age の値は?
pochi = Dog("ポチ", 5)
pochiポチ — 犬の名前.age は 5 です。Dog("ポチ", 5) と呼ぶと、__init__イニット — 初期化メソッドageエイジ — 年齢 に 5 が渡り、selfセルフ — 自分自身.age = 5 として保存されます。
3__init__ はいつ実行される?
pochi = Dog("ポチ", 3) # この瞬間!
クラス名() を呼んだ瞬間に自動で実行されます。Dog("ポチ", 3) と書くと、すぐに __init__ が呼ばれて初期設定が行われます。
CHEAT SHEET — まとめ
3行で分かる
  • __init__ はオブジェクト作成時の「初期設定」メソッド
  • self は「自分自身」を指す言葉・自分のデータにアクセス
  • クラスを使う上で必ず登場する2つのキーワード
__init__とself