スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【Python】classと__init__メソッドの使い方を例付きで解説!

Pythonにおいてクラス(class)とは、オブジェクト指向プログラミングの基本的な構成要素です。
classを使うことで、関連するデータや関数をひとまとめにして扱うことができます。
その中でも、__init__メソッドは特別な役割を果たします。

そこで、この記事では、Pythonの__init__メソッドに焦点を当て、その基本的な使い方から応用例まで解説します。

クラス(class)とは何か?

classは、オブジェクト指向プログラミング(OOP)において、データと関数を組み合わせたものです。
データは「属性(attribute)」、関数は「メソッド(method)」と呼ばれます。
classを定義することで、その設計図を元に複数のオブジェクト(インスタンス)を作成することができます。

class MyClass:
    pass

上記のコードは、MyClassという名前のclassを定義しています。
passは、何もしない文ですが、Pythonではブロックが必要な構文であるため、一時的なものとして記述しています。

__init__メソッドとは何か?

__init__メソッドは、classがインスタンス化される際に自動的に呼び出される特殊なメソッドです。
主な役割は、インスタンスの初期化です。インスタンス化とは、classからオブジェクトを生成することを意味します。

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

person1 = Person("Taro", 30)
print(person1.name)  # 出力: Taro
print(person1.age)   # 出力: 30

Personクラス内の__init__メソッドでは、nameとageという引数を受け取り、それらをインスタンスの属性として設定しています。

__init__メソッドの応用例

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

__init__メソッドにデフォルト引数を指定することもできます。

class Circle:
    def __init__(self, radius=1):
        self.radius = radius

circle1 = Circle()
print(circle1.radius)  # 出力: 1

circle2 = Circle(5)
print(circle2.radius)  # 出力: 5

初期化処理の追加
__init__メソッド内で、初期化処理以外の処理を追加することもできます。

class Dog:
    def __init__(self, name):
        self.name = name
        self.tricks = []  # 犬のトリックを空のリストとして初期化

    def add_trick(self, trick):
        self.tricks.append(trick)

dog1 = Dog("Buddy")
dog1.add_trick("roll over")
print(dog1.tricks)  # 出力: ['roll over']

まとめ

__init__メソッドは、classのインスタンス化時に自動的に呼び出される特殊なメソッドであり、インスタンスの初期化に使用されます。
この記事では、__init__メソッドの基本的な使い方から応用例までを解説しました。
Pythonにおけるクラスと__init__メソッドの理解は、オブジェクト指向プログラミングを行う上で非常に重要です。