カテゴリ: Python 更新日: 2026/02/21

Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化

Pythonのコンストラクタ(__init__)の使い方!オブジェクトの初期化
Pythonのコンストラクタ(__init__)の使い方!オブジェクトの初期化

先生と生徒の会話形式で理解しよう

生徒

「Pythonでクラスを作ったら、__init__っていう見慣れないものが出てきました。これは何をするものなんですか?」

先生

「Pythonの__init__は、オブジェクトが作られた直後に自動で動く特別な処理です。最初の準備を担当します。」

生徒

「最初の準備というと、どんなことをするんですか?」

先生

「それでは、パソコンを触ったことがない人でもイメージできる例えで説明していきましょう。」

-

1. Pythonのコンストラクタ(__init__)とは何か

1. Pythonのコンストラクタ(__init__)とは何か
1. Pythonのコンストラクタ(__init__)とは何か

Pythonのコンストラクタとは、クラスからオブジェクトを作った瞬間に自動で実行される特別なメソッドです。名前は必ず__init__と書きます。メソッドとは、プログラムの中で使う処理のまとまりのことです。

とても簡単に言うと、コンストラクタは「生まれたばかりのオブジェクトに、最初の設定をする係」です。例えば、人が生まれたときに名前を決めたり、年齢を記録したりするのと同じ役割です。

2. クラスとオブジェクトを超かんたんに理解しよう

2. クラスとオブジェクトを超かんたんに理解しよう
2. クラスとオブジェクトを超かんたんに理解しよう

Pythonのオブジェクト指向を理解するには、「クラス」と「オブジェクト」を知ることが大切です。クラスは設計図、オブジェクトは実物だと考えてください。

たい焼きで例えると、たい焼きの型がクラスで、実際に焼けたたい焼きがオブジェクトです。型だけでは食べられませんが、型を使うことで何個でもたい焼きを作れます。

Pythonでは、クラスからオブジェクトを作るときに、コンストラクタが自動で呼ばれます。

3. __init__を使った一番シンプルな例

3. __init__を使った一番シンプルな例
3. __init__を使った一番シンプルな例

ここでは、名前を記録するだけのクラスを使って、Pythonのコンストラクタの基本的な使い方を見てみましょう。


class Person:
    def __init__(self, name):
        self.name = name

person1 = Person("たろう")
print(person1.name)

実行結果は次のようになります。


たろう

selfは「自分自身のオブジェクト」を表す言葉です。難しく感じますが、「この人自身の名前」という意味だと思って大丈夫です。

4. コンストラクタで初期化するという考え方

4. コンストラクタで初期化するという考え方
4. コンストラクタで初期化するという考え方

初期化とは、「最初の状態を決めること」です。Pythonのコンストラクタでは、オブジェクトが使われる前に必要な情報をまとめて設定できます。

例えば、ゲームを始めるときに体力が100からスタートするように決めるのも初期化です。毎回決まった状態から始められるので、プログラムが安定します。


class GameCharacter:
    def __init__(self):
        self.hp = 100

hero = GameCharacter()
print(hero.hp)

100
-

5. コンストラクタに複数の値を渡す方法

5. コンストラクタに複数の値を渡す方法
5. コンストラクタに複数の値を渡す方法

Pythonの__init__では、複数の値を受け取ることもできます。これにより、オブジェクトごとに違う情報を持たせられます。

これは、会員登録のときに名前と年齢を同時に入力するイメージです。


class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

user1 = User("はなこ", 20)
print(user1.name)
print(user1.age)

はなこ
20

6. なぜ__init__という名前なのか

6. なぜ__init__という名前なのか
6. なぜ__init__という名前なのか

__init__はアンダースコアが前後に二つ付いた、特別な名前です。これは「特別な決まりごと」としてPythonに用意されています。

このような名前のメソッドは、Pythonが自動で呼び出します。そのため、私たちが直接__init__を実行する必要はありません。

クラスからオブジェクトを作った瞬間に動く、それがコンストラクタです。

7. コンストラクタを使うメリット

7. コンストラクタを使うメリット
7. コンストラクタを使うメリット

Pythonでコンストラクタを使う最大のメリットは、設定忘れを防げることです。最初に必要な情報を必ず用意するため、後からエラーが起きにくくなります。

また、同じクラスから作られたオブジェクトが、同じルールで初期化されるため、プログラム全体が読みやすくなります。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

初心者がよく戸惑うのがselfの存在です。これは特別な変数で、「このオブジェクト自身」を意味します。

もう一つは、__init__を書かなくてもクラスは作れる点です。ただし、その場合は初期設定ができないため、少し複雑な処理になると困ることが増えます。

Pythonのオブジェクト指向を学ぶうえで、コンストラクタはとても重要な基礎なので、焦らず何度も見返してください。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHP のフォームバリデーション(入力チェック)を完全解説!初心者向けガイド
New2
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New3
PHP
PHP の文字列を検索・置換する方法(str_replace, preg_replace)
New4
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでリストを分割する方法(スライス / split() / itertools)
No.2
Java&Spring記事人気No2
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
Java&Spring記事人気No3
Python
Pythonで特定の年・月の日数を取得する方法を完全解説!初心者でもわかるcalendar.monthrange()
No.4
Java&Spring記事人気No4
PHP
PHPのCookieの管理方法とクライアントサイドのデータ保持の基本とベストプラクティス
No.5
Java&Spring記事人気No5
PHP
PHPのプリペアドステートメントを完全ガイド!初心者でも分かるSQLインジェクション対策
No.6
Java&Spring記事人気No6
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonの辞書をファイルに保存・読み込む方法(pickle / json)初心者向け完全ガイド
No.8
Java&Spring記事人気No8
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
-
-