初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

ポリモーフィズム

ポリモーフィズムとは

ポリモーフィズムとは、日本語で多態性と言います。多態性とは、クラスの種類に関わらず、異なるオブジェクトに対して同じ操作を適用することです。

ポリモーフィズムの実装

説明を聞いてもわかりにくいと思うので、例を見ましょう。

# sample.py
class Hero():
    def __init__(self, name):
        self.name = name

    def speak(self):
        return "私は"+self.name+"です。"

class Enemy():
    def __init__(self, name):
        self.name = name

    def speak(self):
        return "我は"+self.name+"なり。"

def self_introduction(obj):
    print(obj.speak())

hero = Hero('ヨシヒコ')
enemy = Enemy('魔王')

self_introduction(hero)
self_introduction(enemy)
# 実行結果 (python sample.py)
私はヨシヒコです。
我は魔王なり。

上記が多態性の例です。同じspeakを持つオブジェクトを共通のインターフェイスを持つオブジェクトとして扱っています。つまり、異なるクラスのインスタンス(hero, enemy)を一つの関数(self_introduction)で扱えているということです。

最後に

お疲れ様でした。多態性は重要な概念です。ここではほんの一部しか説明していませんので、詳しく調べてみてください。