Pythonのクラスを勉強する際に必ず登場するself
について説明します。Pythonにおいてしばしばヘイトを集めていると言われているself
ですが、今回はその役割について理解を深められればと思います。
Pythonのselfって何?
self
は、インスタンス自身を示すものです。また、self
はpythonの設計仕様で欠かすことはできません。
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()
selfの注意点
self
はインスタンス自身を示すものなので、呼び出す側は引数として値を入れない事です。また、名前をself
以外のキーワード (例えば、myselfなど)にすることは可能ですが、慣例としてself
を使用しています。
以上、Pythonのself
についての基本的な説明でした。この記事がself
の理解に役立つことを願っています。