Pythonのコンストラクタ

Pythonのコンストラクタ
目次

コンストラクタ

ロボ君

コンストラクタは、クラスのインスタンスを作成する際に最初に呼び出されるメソッドデス。

インスタンスに初期値を設定したり、インスタンスで使用するリソースを初期化したりするために使用されます。

りある

「なんも値がない!」ってことがなくなるんやね。

__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__ メソッドが nameage という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クラスのインスタンスを作成し、nameageaddressの属性を設定しています。

まとめ

  • コンストラクタは、クラスのインスタンスを作成する際に、必ず呼び出されます。
  • コンストラクタを定義しない場合は、Pythonはデフォルトのコンストラクタを作成します。
  • デフォルトのコンストラクタは、インスタンスに初期値を設定しません。

教科書

Pythonの教科書は「やさしいPython」です。

Javaの教科書は「スッキリわかるJava入門 実践編 第3版」です。

著:中山清喬, 著:国本大悟, 監修:株式会社フレアリンク
¥239 (2024/04/10 17:55時点 | Amazon調べ)

SQLの教科書は「スッキリわかるSQL入門第3版」です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次