カテゴリ: 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__です。

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

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

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

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
New2
PHP
PHPのスコープとは?グローバル・ローカル・スーパーグローバルを完全解説!
New3
PHP
PHPの演算子をやさしく解説!算術・比較・論理・ビット演算子の使い方
New4
PHP
PHP の変数とは?基本的な使い方とデータ型を徹底解説!
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.4
Java&Spring記事人気No4
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.5
Java&Spring記事人気No5
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.6
Java&Spring記事人気No6
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.7
Java&Spring記事人気No7
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.8
Java&Spring記事人気No8
PHP
PHP のデータ型を完全ガイド!初心者でもわかる int, string, float, bool など
-
-