Pythonのクラスを勉強する際に必ず登場するself
について説明します。Pythonにおいてしばしばヘイトを集めていると言われているself
ですが、その役割について理解を深められればと思います。
Pythonのselfとは?
self
とは、クラスのインスタンスを指す特殊な引数です。クラス内で定義されたメソッドは、そのメソッドを呼び出すオブジェクト自身への参照を第一引数として取ります。この第一引数が、self
です。
selfの使い方
インスタンス変数として参照する
コンストラクタで使用する例を見てみましょう。Pythonにおけるコンストラクタは__init__
と表記します。
class className():
def __init__(self, strA, strB):
self.strA = strA
self.strB = strB
test = className("Hello", "World!")
print(test.strA)
print(test.strB)
このように、インスタンスを生成する際に引数を渡すと、self
を使ってインスタンス変数として代入する事ができます。
クラス変数として参照する
以下のようにクラス変数として別メソッドでも使う事ができます。
class className():
def __init__(self, strA, strB):
self.strA = strA
self.strB = strB
def printStrA(self):
print(self.strA)
def printStrB(self):
print(self.strB)
test = className("Hello", "World!")
test.printStrA()
test.printStrB()
まとめ
Pythonのself
は、クラスのインスタンスを指す特殊な引数であり、クラス内で定義されたメソッドは、そのメソッドを呼び出すオブジェクト自身への参照を第一引数として取ります。この第一引数が、self
です。self
を理解し、適切に使用することで、Pythonのクラスとオブジェクト指向プログラミングをより深く理解することができます。