\

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のクラスとオブジェクト指向プログラミングをより深く理解することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です