コンストラクタ
コンストラクタは、クラスのインスタンスを作成する際に最初に呼び出されるメソッドデス。
インスタンスに初期値を設定したり、インスタンスで使用するリソースを初期化したりするために使用されます。
「なんも値がない!」ってことがなくなるんやね。
__init__
メソッド
コンストラクタは、クラスの定義で __init__(self, ...)
という形式で定義します。__init__
メソッドは、クラスから新しいオブジェクト(インスタンス)を作成する際に自動的に呼び出される特殊メソッドです。
その主な目的は、オブジェクトの初期化と属性の設定です。
構文
__init__
メソッドは通常、クラス内で以下のように定義されます。
def __init__(self, <パラメータ1>, <パラメータ2>, ...):
# インスタンスの初期化コード
self パラメータ
self
パラメータは __init__
メソッドの最初の引数として必須です。
def __init__(self, <-----これ
これは、新しく作成されるオブジェクト自体を指します。
通常、このパラメータの名前は self
である必要がありますが、名前が self
であることはPythonの慣習です。
属性の設定
__init__
メソッド内で、属性を self.属性名
のように設定できます。
これにより、オブジェクト内でその属性にアクセスできるようになります。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
呼び出し
クラスからオブジェクトを作成すると、Pythonは自動的に __init__
メソッドを呼び出します。
例えば、obj = MyClass()
のようにクラスをインスタンス化すると、MyClass
クラス内の __init__
メソッドが実行されます。
例:次のコードは、名前と年齢を持つ人を表現するクラス Person
を定義しています
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Real", 54)
print(person.name)
print(person.age)
# 実行結果
# Real
# 54
この例では、Person
クラスの __init__
メソッドが name
と age
という2つのパラメータを受け取り、それらの値をオブジェクトの属性として設定します。
コンストラクタは、クラスの定義で、任意の数の引数を指定することができます。
例:次のコードは、名前、年齢、住所を持つ人を表現するクラスPerson
を定義しています。
class Person:
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address
person = Person("Real", 54, "123 Waka Street")
print(person.name)
print(person.age)
print(person.address)
# 実行結果
# Real
# 54
# 123 Main Street
このコードは、Person
クラスのインスタンスを作成し、name
、age
、address
の属性を設定しています。
まとめ
- コンストラクタは、クラスのインスタンスを作成する際に、必ず呼び出されます。
- コンストラクタを定義しない場合は、Pythonはデフォルトのコンストラクタを作成します。
- デフォルトのコンストラクタは、インスタンスに初期値を設定しません。