Pythonのクラスについて学ぶとき、初めて出会う壁の一つがself
です。この記事では、Pythonのself
について深く掘り下げてみましょう。
Pythonのselfとは何か
Pythonのself
は、クラスのメソッド内でオブジェクト自身を参照するために使用されます。メソッドが呼び出される際には、self
は暗黙的に渡され、メソッド内で自由に使用することができます。
class Cat():
def __init__(self, name):
self.name = name
def naku(self):
print("にゃー")
tama = Cat("タマ")
tama.naku() # "にゃー"と出力される
上記の例では、Cat
クラスの__init__
メソッドとnaku
メソッドの第一引数としてself
が指定されています。self
は、インスタンス自身を指すため、self.name
はインスタンスのname
属性を指します。
selfはなぜ必要なのか
Pythonのself
は、メソッド内でインスタンス変数を通常の変数に代入するために必要です。これにより、同じクラスから生成された異なるインスタンスが、それぞれ独自の状態を持つことが可能になります。
class Dog:
def __init__(self, name):
self.name = name
chihuahua = Dog("チワワ")
dachshund = Dog("ダックスフンド")
print(chihuahua.name) # "チワワ"と出力される
print(dachshund.name) # "ダックスフンド"と出力される
上記の例では、Dog
クラスから生成されたchihuahua
とdachshund
という二つのインスタンスが、それぞれ異なるname
属性を持つことができます。
まとめ
Pythonのself
は、クラスのメソッド内でインスタンス自身を参照するための重要なキーワードです。self
を理解することは、Pythonのクラスとオブジェクト指向プログラミングを理解する上で不可欠です。この記事が、Pythonのself
についての理解を深める一助となれば幸いです。.