Pythonのクラスを学ぶ際に、self
とsuper
は重要な概念です。これらの理解は、Pythonのオブジェクト指向プログラミングの基礎を理解するために不可欠です。
selfとは何か
Pythonでは、インスタンスのメソッドを呼び出すとき、そのインスタンス自体が第一引数として渡されます。これをself
という変数で受け取ることが一般的です。つまり、self
はインスタンス自体を指すものです。
__init__メソッドとは何か
__init__
メソッドは、クラスがインスタンス化されたときに自動的に実行される特別なメソッドです。このメソッドは通常、インスタンス変数の定義に使用されます。
superとは何か
super
は、子クラスから親クラスのメソッドを呼び出すために使用されます。これは、親クラスのメソッドをオーバーライド(上書き)したいが、その一部の機能は保持したいときに便利です。
Pythonでのselfとsuperの使い方
以下に、Pythonでのself
とsuper
の基本的な使い方を示します。
class Person():
def __init__(self, name, age):
self.name = name
self.age = age
def say_name(self):
print("私の名前は" + self.name + "です。 年齢は" + str(self.age) + "歳です。")
class JapanesePerson(Person):
def __init__(self, name, age):
super().__init__(name, age)
def say_hello(self):
print("こんにちは")
yamada = JapanesePerson("山田", 20)
yamada.say_name()
yamada.say_hello()
このコードでは、Person
クラスを親クラスとしてJapanesePerson
クラスを定義しています。JapanesePerson
クラスの__init__
メソッドでは、super
を使用して親クラスの__init__
メソッドを呼び出しています。
以上がPythonのself
とsuper
の基本的な理解と使い方になります。これらの概念を理解することで、Pythonのクラスと継承の理解が深まります。