作者: Yukihiro Matsumoto
日時: 2008/1/16(15:15)
まつもと ゆきひろです

In message "Re: [TSpython:1036] ダックタイピングは危険?"
    on Wed, 16 Jan 2008 14:04:01 +0900 (JST), kikwai@... (機械伯爵) writes:

|<引用>
| このような型の拡張方法はダック・タイピング(duck typing)と呼ばれる。
| なお、この方法では型の安全性を静的にチェックできないため、ダック・タイ
|ピングを用いたPythonプログラムは実行時に型エラー(多くの場合これは「メソ
|ッドが定義されていない」というエラーとなって現れる)が発生する危険性があ
|る。
| したがって新しい型を設計する際には、Python プログラマは(Javaなどより
|も)多少は注意深くなる必要がある。
|</引用>
|
| 振る舞いが予想できないようなクラスは、素直に継承して拡張あるいは隠蔽す
|ればよかろうに、なんでわざわざダックタイピング的特徴で新しいクラスを実装
|せにゃならんのか、理解に苦しみます。

なんか、あまりDuckTypingについて理解していない表現に見えます
ね。というか日本語としてもいまいち。「このような型の拡張法」っ
て拡張してないじゃん。

それにダックタイピングを使わなくても動的型言語で型エラーが実
行時に発生するのは当たり前だと思います。それは設計手法として
のダックタイピングとは関係ないでしょう。

| あんまり不可解なんで、ノートに「これ、何の意味があるんですか?」的なコ
|メント書いておきましたが、反応が無い場合、本文を編集しようかと思います。
|
|※そんなに型チェックしたけりゃ、isinstance関数使えばいーじゃないか。

isinstanceを使ったらダックタイピングではありませんよ。

                                まつもと ゆきひろ /:|)