{category}

Python - 特殊メソッド

__init__

イニット(関数とクラス

意味 クラスの初期設定


__init__とは?

クラスを定義する際に、最初に実行される特殊なメソッド。クラスからオブジェクト(実体)を作成する際に、そのオブジェクトの初期状態を設定するために使用されます。例えば、名前や年齢などの属性を持つ「人」クラスを作る場合、`__init__`メソッドでそれぞれの属性の初期値を設定します。

__init__の具体的な使い方

クラス初期化の基本例

class Car:
    def __init__(self, brand, model, year):
        self.brand = brand
        self.model = model
        self.year = year

my_car = Car('Toyota', 'Corolla', 2022)
print(f'私の車は{my_car.year}年式の{my_car.brand} {my_car.model}です。')

👇出力結果

私の車は2022年式のToyota Corollaです。

Carクラスを定義し、__init__メソッドでブランド、モデル、製造年の属性を設定しています。my_carオブジェクトを作成する際に、これらの情報を渡すことで、オブジェクトの初期状態が設定されます。

デフォルト値を持つ__init__メソッド

class Rectangle:
    def __init__(self, width=1, height=1):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

rect1 = Rectangle()
rect2 = Rectangle(5, 3)

print(f'rect1の面積: {rect1.area()}')
print(f'rect2の面積: {rect2.area()}')

👇出力結果

rect1の面積: 1
rect2の面積: 15

Rectangleクラスを定義し、__init__メソッドで幅と高さの属性にデフォルト値を設定しています。引数を指定せずにオブジェクトを作成すると、デフォルト値が使用されます。また、areaメソッドで長方形の面積を計算しています。

__init__に関するよくある質問

Q. __init__メソッドの役割は?
A. __init__メソッドは、クラスのインスタンスが作成されるときに自動的に呼び出される特殊なメソッドです。主に、オブジェクトの初期状態を設定するために使用されます。属性の初期化や、オブジェクト作成時に必要な処理を行うのに適しています。
Q. __init__の第一引数selfとは?
A. selfは、クラスのインスタンス自身を指す参照です。メソッド内で自分自身の属性やメソッドにアクセスするために使用します。Pythonでは慣例的にselfという名前を使いますが、他の名前でも動作します。ただし、可読性のためにselfを使用することが推奨されています。
Q. __init__で返り値を設定できる?
A. __init__メソッドは返り値を持つことができません。返り値を指定しようとすると、TypeErrorが発生します。__init__の役割は初期化のみで、新しいオブジェクトの作成自体はPythonのオブジェクト生成システムが行います。

__init__が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonの__init__や@decorator、__len__、self、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Pythonを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

@decorator

関数を拡張

種類: デコレータ

__len__

長さや要素数を取得

種類: 特殊メソッド

self

自分自身のオブジェクト

種類: クラス定義

gensim

話題の単語を分析

種類: 自然言語処理

except

エラー発生時の処理

種類: 例外処理