Python を最初からちゃんと学習してみた ~__init__()編~


前置き

みなさん、Python をなんとなく触っていませんか? 僕はとりあえずネットに載っているコードを買いとけば動くからいいや、としていたのでこれを機にしっかり学びます。今回は__init__()編です。


__init__()ってなに?

def __init__()とクラスの最初によく見ます。これは一般的なプログラムでいうコンストラクタと同じです。
では、コンストラクタとはなんでしょうか。
コンストラクタとは、クラスがインスタンス化された時に自動で実行される関数のことです。
実際に動きを確認してみましょう。

__init__()の挙動を確認


クラスを定義する

1
2
3
4
5
6
class Sample():
def __init__(self):
print("excuted")

def sample():
print("")

インスタンス化する

インスタンス化するには定義したクラス名に()を付け加えます。

1
sample_instance = Sample()

すると出力には以下が出力されます。

1
excuted

__init__()の使われ方

よくクラスに設定されるフィールド(変数)を定義します。
例えば以下のようにクラスに変数を設定し、クラスがインスタンス化されたとともに変数をクラスのフィールドに代入するといったことを行うことができます。

1
2
3
4
5
6
7
8
9
class Sample():
name = ""
place = ""
def __init__(self, name, place):
self.name = name
self.place = place

def create_sentence(self):
print(self.name + "は" + self.place + "に住んでいます。")

実際に確認してみましょう。

1
2
a = Sample("Jiro", "渋谷")
a.create_sentence()