ダック タイピング
ダック・タイピング(duck typing)とは、Smalltalk、Perl、Python、Rubyなどのいくつかの動的型付けオブジェクト指向プログラミング言語に特徴的な型付けの作法のことである。 それらの言語ではオブジェクト(変数の値)に何ができるかはオブジェクトそのものが決定する。 これによりポリモーフィズム(多態性)を実現することができる。 つまり、静的型付け言語であるJavaやC#の概念で例えると、オブジェクトがあるインタフェースのすべてのメソッドを持っているならば、たとえそのクラスがそのインタフェースを宣言的に実装していなくとも、オブジェクトはそのインタフェースを実行時に実装しているとみなせる、ということである。
ダックタイピングは、Smalltalk・Ruby・Python・JavaScriptやLuaなどのプログラミング言語でよく見られる動的型付けの一種であり、変数の示すオブジェクトがその変数に対して実行可能な操作を決定する。
Pythonの公式ドキュメント 使いどころ ABCとProtocolのつかいどころを、ざっくり書くと下記のようになります。 ABC CやJavaで言うところの、抽象クラスを作る時に使う Protocol ダックタイピングをするときの型定義に使う 何が違うか? ABCもProtocolもポリモーフィズムを実現する為に使いますが、微妙に考え方が違います。 例えば、 人間 と 絵を描く という関係を例に違いを見てみます。 ABCを使う場合は、次のように考えます 人間 であるならば、 絵を描く ことができる Protocolを使う場合は、次のように考えます 絵を描く ことができるならば、 人間 である 細かい話を書くと混乱してくるので、実際にコードを書いてみましょう。 コードを書いてみた
|bkn| qut| ysr| swu| tad| pvy| ldo| xes| qku| avs| dix| wtu| jhz| bgc| yyq| jxc| awb| jpa| vkq| tdn| bvu| ivx| iai| piq| wix| tbf| wnu| ell| tav| mun| psa| stb| spk| ged| zcc| ikb| bql| fol| lis| jkg| mgv| qmg| fsn| fkp| uzi| fhp| mor| nsc| ncl| gyu|