カテゴリ: 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
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
New2
Python
Pythonのスコープとは?ローカル変数・グローバル変数の違いと使い分け
New3
Python
Pythonのreturn文の使い方!値を返す関数の書き方と注意点
New4
Python
PythonでSQLデータベース操作時のエラーハンドリングを初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
FlaskでAPIのレスポンスをキャッシュ!通信負荷を軽減して爆速にする方法
No.4
Java&Spring記事人気No4
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.5
Java&Spring記事人気No5
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
No.6
Java&Spring記事人気No6
Flask
FlaskのSQLAlchemyでフィルタリング検索!filter, filter_byの使い方完全ガイド
No.7
Java&Spring記事人気No7
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.8
Java&Spring記事人気No8
Django
Django settings.py の役割とよく使う設定を完全解説!初心者でもわかる基本と考え方