Python での join() は StringBuffer の代替と考えると、str.join(list) が自然なのかも
ここまで書いて思ったんだけど、StringBuffer 相当の機能がない Python にとっては、join がその代替なのかもしれない。
つまりだな、Python の str.join(list) は Ruby の Array#join(str) 相当ではなくて、String#<< 相当なんじゃないか、という新しい仮説を提唱してみる。
## Python の str.join() は s = ''.join(['A', 'B', 'C']) ## Ruby の String#<< に相当? s = ''; s << 'A' << 'B' << 'C'
そう考えると、join() が文字列のメソッドであることが、なんか自然に思えてきた (separator? なにそれ?)。
でも str.join() が StringBuffer や String#<< 相当だとすると、やはり list 内の要素を自動的に str に変換してくれない今の仕様はブサイクに感じる。