Pythonのコンストラクタ(__init__)とは?クラスの初期化を自動化する仕組みを解説!
コンストラクタ(constructor)とは、クラスからオブジェクト(インスタンス)を生成するときに自動的に呼び出される特別なメソッドです。
Pythonでは、__init__
という名前で定義します。
基本構文
class クラス名:
def __init__(self, 引数1, 引数2, ...):
self.属性 = 値
例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("さくら", 20)
print(p1.name) # → さくら
print(p1.age) # → 20
__init__()
はインスタンス生成時に自動で呼び出され、属性の初期化を行います。
selfとは?
self
はそのインスタンス自身を表すキーワードです。
属性(値)を定義するときは self.属性名
のように書きます。
引数にデフォルト値を設定
class Animal:
def __init__(self, name="名無し"):
self.name = name
a = Animal()
print(a.name) # → 名無し
引数に初期値を設定しておくと、引数なしでもインスタンスを生成可能になります。
複数のインスタンスの独立性
p1 = Person("たろう", 30)
p2 = Person("はなこ", 25)
print(p1.name) # → たろう
print(p2.name) # → はなこ
同じクラスから作られたオブジェクトでも、属性はインスタンスごとに独立しています。
__init__を使うメリット
- インスタンス生成時の初期設定を自動化できる
- クラスの使用を簡潔・安全にできる
- 引数付きのオブジェクト生成が可能になる
まとめ
Pythonのコンストラクタ(__init__)は、インスタンス生成時に自動的に実行される初期化用のメソッドです。
self
を通じて、オブジェクトに属性を設定し、必要な値を渡すことができます。
クラスを使ってオブジェクト指向プログラミングを行う際には、__init__ の使い方をしっかり理解しておくことが重要です!