カテゴリ: Python 更新日: 2025/11/20

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

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

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

生徒

「Pythonの“コンストラクタ”ってなんですか?クラスでよく見かける__init__って何をしてるんですか?」

先生

「Pythonの__init__は“コンストラクタ”と呼ばれていて、オブジェクトを作るときに最初に実行される特別な関数なんだ。」

生徒

「つまり、オブジェクトを作るときに必要な準備をしてくれるんですね?」

先生

「その通り。じゃあ、Pythonのコンストラクタの基本的な使い方を一緒に学んでみようか!」

-

1. コンストラクタとは何か?

1. コンストラクタとは何か?
1. コンストラクタとは何か?

Python(パイソン)のコンストラクタは、クラスからオブジェクト(実体)を作ったときに、自動的に実行される特別な関数です。このコンストラクタを使うことで、オブジェクトの初期設定を簡単に行うことができます。

具体的には__init__(ダブルアンダースコア・イニット)という関数を使います。この名前には特別な意味があり、Pythonが特別に扱う関数であることを示しています。

2. コンストラクタの基本的な書き方

2. コンストラクタの基本的な書き方
2. コンストラクタの基本的な書き方

まずは簡単なクラスを使って、Pythonのコンストラクタ__init__の基本的な使い方を見てみましょう。


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

この例では、Personという人を表すクラスを作っています。そして、__init__の中で、nameageという情報をオブジェクトにセットしています。

selfというのは「そのオブジェクト自身」を意味する特別なキーワードです。クラスの中で自分自身にアクセスするために使います。

3. コンストラクタを使ってインスタンスを作成してみよう

3. コンストラクタを使ってインスタンスを作成してみよう
3. コンストラクタを使ってインスタンスを作成してみよう

上で定義したPersonクラスから実際にオブジェクト(インスタンス)を作ってみましょう。


p1 = Person("たろう", 18)
p2 = Person("はなこ", 25)

print(p1.name)
print(p2.age)

たろう
25

このように、__init__のおかげで、インスタンスを作ると同時に中身のデータを設定することができます。

4. なぜコンストラクタが便利なのか?

4. なぜコンストラクタが便利なのか?
4. なぜコンストラクタが便利なのか?

もしコンストラクタがなかったら、インスタンスを作った後に、毎回nameageを個別に設定しなければなりません。それだと手間もかかり、ミスもしやすくなります。

コンストラクタを使えば、インスタンスを作るときにすべての初期設定が終わるので、とても効率的です。

-

5. 引数なしのコンストラクタも使える

5. 引数なしのコンストラクタも使える
5. 引数なしのコンストラクタも使える

コンストラクタは、引数(ひきすう)を使わない形でも定義できます。つまり、最初から決めておきたい内容を中に書くこともできます。


class Hello:
    def __init__(self):
        print("こんにちは!Pythonへようこそ!")

greet = Hello()

こんにちは!Pythonへようこそ!

このように、インスタンスを作るだけで自動的にメッセージが表示されるような使い方もできます。

6. コンストラクタの中で他の処理を入れてみよう

6. コンストラクタの中で他の処理を入れてみよう
6. コンストラクタの中で他の処理を入れてみよう

コンストラクタの中には、データの保存だけでなく、条件分岐や関数の呼び出しなども書くことができます。たとえば次のような使い方です。


class Member:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        if age < 20:
            print(f"{name}さんは未成年です。")
        else:
            print(f"{name}さんは成人です。")

m1 = Member("ゆうた", 17)
m2 = Member("さき", 22)

ゆうたさんは未成年です。
さきさんは成人です。

このように、初期化のときに何か特別な処理を実行させたい場合にも、__init__はとても便利です。

7. コンストラクタとクラスの関係を身近な例でイメージしよう

7. コンストラクタとクラスの関係を身近な例でイメージしよう
7. コンストラクタとクラスの関係を身近な例でイメージしよう

クラスが「設計図」だとしたら、コンストラクタは「その設計図をもとにして商品を組み立てる作業」です。たとえばクラスが「自転車の設計図」で、コンストラクタは「タイヤをつけて、ハンドルを固定して…」という組み立て工程です。

このように考えると、__init__は「最初にやるべき準備の場所」だということがよくわかります。

8. オブジェクト指向と初期化の考え方を理解しよう

8. オブジェクト指向と初期化の考え方を理解しよう
8. オブジェクト指向と初期化の考え方を理解しよう

Pythonのオブジェクト指向プログラミングでは、「データ」と「動き」をひとつにまとめるのが基本です。クラスの中にデータ(変数)と動き(関数)を持たせて、作ったオブジェクトが自分で動けるようにするのです。

そのため、オブジェクトが作られるときに「どんなデータを持つか」を明確にすることがとても大切で、その役目を果たすのが__init__です。

初心者にとっては少しとっつきにくいかもしれませんが、「最初にデータを入れておく場所」と考えれば、だんだんイメージがわいてくるでしょう。

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

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

関連記事:
カテゴリの一覧へ
新着記事
Pythonの定数の定義方法!初心者向けに慣習的な書き方と変更を防ぐコツを解説
PHPの関数の引数と戻り値を完全ガイド!初心者でもわかる基本の使い方
Pythonの例外発生の基本をマスター!初心者でもわかるraise文の使い方ガイド
Pythonでタプルの要素数を取得する方法(len()の使い方)初心者でもわかる数え方の基本
人気記事
No.1
PHP&Python記事人気No1
Pythonの例外処理をやさしく解説!初心者でもわかるtry-exceptの基本と使い方
No.2
PHP&Python記事人気No2
PHPでJSONデータを扱う方法をやさしく解説!初心者でもわかるjson_encodeとjson_decode
No.3
PHP&Python記事人気No3
PHPのデフォルト引数の設定方法をやさしく解説!初心者でも安心の入門ガイド
No.4
PHP&Python記事人気No4
Pythonのデータ型変換まとめ!int, float, str, list などの変換方法
-