Pythonのクラスとは何か
Pythonにおいて、クラスとはオブジェクト指向プログラミングにおける概念の一つです。クラスは、同じ属性やメソッドを持つオブジェクトを生成するための設計図のようなものです。
Pythonのinitメソッドとは何か
Pythonのクラスには、オブジェクトを生成する際に実行される特殊なメソッドがあります。その一つが、__init__
メソッドです。このメソッドは、オブジェクトを生成するときに自動的に呼び出されます。
class MyClass: def __init__(self, arg1, arg2): self.arg1 = arg1 self.arg2 = arg2
上記のように、__init__
メソッドは、self
という引数を持ち、その引数を介して、オブジェクトに属性を与えることができます。
親クラスとは何か
親クラスとは、継承関係にあるクラスのうち、より一般的なクラスのことを指します。継承関係においては、子クラスは親クラスの属性やメソッドを引き継ぐことができます。
class MyParentClass: def __init__(self, arg1, arg2): self.arg1 = arg1 self.arg2 = arg2 class MyChildClass(MyParentClass): def __init__(self, arg1, arg2, arg3): super().__init__(arg1, arg2) self.arg3 = arg3
上記の例では、MyChildClass
はMyParentClass
を継承しています。そして、MyChildClass
の__init__
メソッドの中で、親クラスの__init__
メソッドを呼び出すことができます。
親クラスのinitメソッドの役割
親クラスの__init__
メソッドは、子クラスに継承された際に、子クラスのオブジェクトに対して親クラスの属性を与える役割があります。また、子クラスの__init__
メソッドが実行される際に、親クラスの__init__
メソッドも実行されます。
親クラスのinitメソッドの呼び出し方
親クラスの__init__
メソッドを呼び出すには、super()
を使用します。具体的には、super().__init__()
のように書きます。
親クラスのinitメソッドの活用例
以下は、親クラスの__init__
メソッドを活用した例です。
class Animal: def __init__(self, name, age): self.name = name self.age = age class Dog(Animal): def __init__(self, name, age, breed): super().__init__(name, age) self.breed = breed dog1 = Dog("ポチ", 3, "柴犬") print(dog1.name) print(dog1.age) print(dog1.breed)
上記の例では、Animal
クラスを定義し、Dog
クラスをAnimal
クラスを継承して定義しています。そして、Dog
クラスの__init__
メソッドの中で、親クラスの__init__
メソッドを呼び出しています。最後に、dog1
オブジェクトを生成し、その属性を表示しています。
まとめ
Pythonの親クラスの__init__
メソッドは、子クラスに継承された際に、子クラスのオブジェクトに対して親クラスの属性を与える役割があります。親クラスの__init__
メソッドは、super()
を使用して呼び出すことができます。