auの日記

プログラミング初心者の日記。(auはハンドルネームです)

プログラミング用語のダック・タイピングとは

auです。

ダック・タイピングについて調べました。

ダック・タイピングとは

ダック・タイピングとは、クラス名が違っていても、同じ名前の関数からメソッドを呼び出すことができる状態のことです。

”If it walks like a duck and quacks like a duck, it must be a duck”
もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである

という言葉が由来になっており、コードの動きを示しています。

以下のコードでは、animal_voiceという共通の関数から、DuckとCatのクラスが持っているvoiceメソッドを呼び出しています。


def animal_voice(animal):
    return animal.voice()

class Duck():
    def voice(self):
        return 'ぐわぐわ'

class Cat():
    def voice(self):
        return 'ニャーニャー'

duck = Duck()
cat = Cat()
print(animal_voice(duck)) # ぐわぐわ
print(animal_voice(cat)) # ニャーニャー

こんなこともできるんだという発見をすることができました。