Python におけるself の意味は?
self は、Python におけるクラスのインスタンス(自分自身)を表す特別な引数名です。意味と役割
self は、「そのクラスから作られたオブジェクト自身」を指します。
メソッド(クラスの中の関数)を定義する際、必ず最初の引数に self を書く必要があります(Pythonが内部的に自動で渡します)。
なぜ必要なのか?
他の言語では「this」に相当するものです:
言語 インスタンス自身の参照
Python self
Java / C++ this
VB.NET Me
例で理解する
class Dog:
def __init__(self, name):
self.name = name # ← インスタンス変数に代入
def bark(self):
print(f"{self.name} がワンワン吠える!")
shiba = Dog("しばいぬ")
shiba.bark() # 出力:しばいぬ がワンワン吠える!
ポイント:
self.name = name は、「このインスタンスの name に、引数の name を保存する」という意味
shiba.bark() を呼ぶと、Python は内部的に Dog.bark(shiba) を呼んでいる
つまり、self には shiba の実体が入る
注意点
self は キーワードではなく、ただの慣習 です(他の名前でも動きますが、可読性が下がるため推奨されません)。
self を忘れるとエラーになります:
def bark(): # selfがないので間違い
print("ワンワン")
# TypeError: bark() takes 0 positional arguments but 1 was given
結論
self は「自分自身のインスタンス」を指す
クラス内メソッドでインスタンス変数や他のメソッドにアクセスするために使う
Pythonでは self を 明示的に書く ルールになっている(他の言語とは異なる点)