Python の join が str のメソッドになっている理由
それにしても、Pythonのjoin()はなんでArray#joinでなくてString#joinなんだ?
これ、理由は明解で、「join メソッドは文字列の処理だから」です。
This method can be used with any argument which obeys the rules for sequence objects, including any new classes you might define yourself.
弾さんのところのコメントに出てきている、「General Python FAQ - 1.4.8 Why is join() a string method instead of a list or tuple method?」で全てなわけですが、str.join (unicode.join) は 任意の sequence に適用できて、
", ".join("abc")
とか
", ".join(str(x * x) for x in range(10))
とかできるのを忘れちゃいけないと思うなぁ。
あと、関係ないことですが。
文字列の処理をするメソッドを、どんなものでも入る Array Class のメソッドとしてはやすなんてとんでもない!
あえて、Perl/Ruby での呼び方にあわせたのかも知れないけど、Python の場合は list/tuple、もっと generic に言えば sequence。array.array は決まった型しか入らない。