Python学習_初歩編_15: クラスの基本概念(クラスの定義、インスタンスの生成、属性、メソッド)、 クラスの継承と多重継承

 

オブジェクト指向プログラミングでは、クラスという概念を使って、データと機能を組み合わせることができます。

クラスは、オブジェクトの設計図のようなもので、オブジェクトの型を定義します。

インスタンスは、クラスから作られたオブジェクトの実体です。

属性は、オブジェクトの特徴やパーツを記録するための変数です。

メソッドは、オブジェクトの機能を定義するための関数です。

クラス継承とは、あるクラスが別のクラスのデータやメソッドを引き継ぐことです。

多重継承とは、あるクラスが複数のクラスからデータやメソッドを引き継ぐことです。

 

Pythonでは、classキーワードでクラスを定義し、コンストラクタで属性を初期化し、defキーワードでメソッドを定義します。

 

例えば、以下のように書くことができます。


# クラスの定義
class Animal:
    # コンストラクタ
    def __init__(self, name, age):
        # 属性
        self.name = name
        self.age = age

    # メソッド
    def speak(self):
        print(f"私は{self.name}です。{self.age}歳です。")

# クラス継承
class Dog(Animal):
    # コンストラクタ
    def __init__(self, name, age, breed):
        # 親クラスのコンストラクタを呼び出す
        super().__init__(name, age)
        # 子クラス独自の属性
        self.breed = breed

    # メソッド
    def bark(self):
        print("ワンワン")

# 多重継承
class FlyingDog(Dog, Bird):
    # コンストラクタ
    def __init__(self, name, age, breed, wing_length):
        # 親クラスのコンストラクタを呼び出す
        super().__init__(name, age, breed)
        # 子クラス独自の属性
        self.wing_length = wing_length

    # メソッド
    def fly(self):
        print("空を飛びます")

# インスタンスの生成
a = Animal("アニー", 3)
d = Dog("ポチ", 5, "柴犬")
f = FlyingDog("フリー", 2, "ミックス", 30)

# メソッドの呼び出し
a.speak()
d.speak()
d.bark()
f.speak()
f.bark()
f.fly()
    

このようにして、Pythonオブジェクト指向プログラミングを行うことができます。