カテゴリ: Python 更新日: 2026/01/17

Pythonのコンストラクタ(__init__)の使い方!オブジェクトの初期化方法を初心者向けに解説

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

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

生徒

「Pythonのクラスを少し勉強したら、__init__っていう不思議な名前のものが出てきました。これは何ですか?」

先生

「それはコンストラクタと呼ばれるもので、オブジェクトが作られた瞬間に実行される特別な仕組みです。」

生徒

「作られた瞬間に実行される…?パソコンを触ったことがない人でも理解できますか?」

先生

「もちろんです。身近な例えを使いながら、Pythonのコンストラクタの役割と使い方を一つずつ説明していきます。」

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

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

Pythonのコンストラクタとは、クラスからオブジェクト(インスタンス)が作られたときに、 自動的に一度だけ実行される特別な処理のことです。 Pythonでは、このコンストラクタを__init__という名前で定義します。

プログラミング未経験の方は、「自動的に実行される」と聞くと難しく感じるかもしれません。 しかし、イメージはとてもシンプルです。

例えば、新しいスマートフォンを買って電源を入れると、 日付や言語、初期設定が自動で行われます。 この「最初に必ず行われる準備」が、Pythonのコンストラクタの役割です。

2. なぜコンストラクタが必要なのか

2. なぜコンストラクタが必要なのか
2. なぜコンストラクタが必要なのか

Pythonのオブジェクト指向プログラミングでは、 クラスは「設計図」、オブジェクトは「実物」として考えます。 しかし、実物を作るときには、必ず最初に決めておきたい情報があります。

例えば「人」を表すクラスがあった場合、 名前や年齢が何も決まっていない人は存在しません。 オブジェクトが作られた時点で、最低限の情報を持たせる必要があります。

その「最初の情報をセットする場所」が、コンストラクタです。 これにより、Pythonのクラスは安全で分かりやすい構造になります。

3. __init__の基本的な書き方

3. __init__の基本的な書き方
3. __init__の基本的な書き方

Pythonでコンストラクタを定義するには、 クラスの中に__init__という関数を書きます。 アンダースコアが二つずつ付いているのが特徴です。


class Person:
    def __init__(self):
        pass

この状態では、まだ何も設定していませんが、 オブジェクトが作られた瞬間に__init__が呼ばれます。 passは「何もしない」という意味です。

4. selfとは何か

4. selfとは何か
4. selfとは何か

コンストラクタの説明で必ず出てくるのがselfです。 selfは「作られたそのオブジェクト自身」を表す特別な変数です。

例えば、自分の名前を自分で言うときに「私」と言うようなものです。 Pythonでは、オブジェクト自身を指す言葉としてselfを使います。

selfを使うことで、「このオブジェクト専用の情報」を保存できます。 これが、オブジェクトごとに違う値を持てる理由です。

5. コンストラクタで属性を初期化する

5. コンストラクタで属性を初期化する
5. コンストラクタで属性を初期化する

コンストラクタの最も重要な役割は、 オブジェクトが作られたときに属性を初期化することです。 属性とは、オブジェクトが持つデータのことです。


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

このコードでは、Personクラスのオブジェクトが作られたときに、 名前という情報を必ず持つようになります。 self.nameは「この人の名前」という意味になります。

6. コンストラクタを使ってオブジェクトを作る

6. コンストラクタを使ってオブジェクトを作る
6. コンストラクタを使ってオブジェクトを作る

コンストラクタを定義したクラスからオブジェクトを作るときは、 クラス名の後ろに丸かっこを書き、必要な情報を渡します。


person1 = Person("たろう")
person2 = Person("はなこ")

print(person1.name)
print(person2.name)

たろう
はなこ

同じクラスから作られたオブジェクトでも、 コンストラクタに渡した値が違うため、 それぞれ別の情報を持っています。

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

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

Pythonでコンストラクタを使う最大のメリットは、 オブジェクトの状態を最初から正しく整えられることです。

後から手動で値を入れる必要がなくなり、 書き忘れや設定ミスを防ぐことができます。

また、クラスの使い方が明確になるため、 プログラム全体が読みやすくなります。 Pythonのオブジェクト指向プログラミングでは、 コンストラクタは欠かせない存在です。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskのアプリケーションファクトリパターンをやさしく解説!初心者でもわかる理由とメリット
New2
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
New3
Django
Djangoでできることとは?初心者でもわかるDjangoの特徴と向いているプロジェクト
New4
Flask
Flaskとクラウド連携を最適化!初心者でもできるWebアプリ運用のベストプラクティス
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのコメント活用術!初心者向けにTODO・FIXME・ドキュメンテーションコメントの書き方を完全解説
No.2
Java&Spring記事人気No2
Python
Pythonのbytes型とbytearray型とは?初心者向けにバイナリデータの扱い方を解説!
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.5
Java&Spring記事人気No5
Flask
Flaskで非同期処理が必要になる場面とは?初心者でもわかる非同期処理とタスク管理の考え方
No.6
Java&Spring記事人気No6
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.8
Java&Spring記事人気No8
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説