0もっと見るコンピュータインターネットPythonにメソッドチェーンがないのはなぜですか?JavaScriptやRubyだと、arr.map(...).filter(...).sort(...)のように、メソッドをつなげて書くことができます。arr)arr.sort()のように、mapやfilterなどがlistのメソッドでないので、そのようなことができません。15:12:11実際の所が、意図や議論の結果なのか、俎上に上がってないだけなのか、先延ばしの結果なのかは知りませんが、ライブラリやWikipediaの記述を見ると、意図したものかな?と推測ですが思います。関数型言語の影響マニュアルにも言及がありますし、ライブラリにも見受けられますが、関数型言語を参考にしたところが多々あるようです。Wikipediaには下記のように書かれています。1.x1994年1月、Python1.0がリリースした。主な特徴として関数型言語の基本であるラムダ計算を実装、MAP型、REDUCEなどが組み込まれている。Lispにある機能とよく似たキーワード引数が導入された。簡易ながら名前修飾を用いたカプセル化も実装された。2.x2000年に公開。ガベージコレクションやUnicode、リストが導入され一躍メジャーな言語となった。多くの機能をHaskellから参考している。以下もWikipediaより。Pythonは言語自身の機能をできるだけ小さくおさえ、ユーザがいつも必要とする最小限の機能のみを提供するように作られている。......基本機能にないものの多くはライブラリによって提供されている。メソッドチェーンにはメソッドの実装が必要で、それには組込型やそのスーパークラスでの実装が必要なので、組込みの部分が肥大化することになります。内部に組込型をもち、メソッドチェーン出来るメソッド群を持つクラスをライブラリとして作る方法もありますが、それはスマートでない(一つの見方として)というのがあります。外部関数として実装すれば、追加のライブラリへの実装で済みますし、追加の機能は追加のライブラリとしていけばよく、枯れた基本ライブラリに手を付けなくてよい利点があります。言語仕様や実装方法で欠点を回避したり、見方を変えればスマートになったりします。rubyは知りませんがjavascriptなら、Objectや自身のprototypeを拡張し、拡張する手段を設けて、動的にメソッドを追加してクラスを拡張しているライブラリがよくあります。pythonでも同様の事は可能だったと思いますが、しかし、それは別のライブラリに副作用を与えるライブラリという事でもあり、たぶんpythonはそれを良しとはしない気がします。以上と若干被りますが、小さくシンプルで重複した機能はいらないというpythonには既に関数型からもってきたモノがあり、いわば関数チェーンがあるので、わざわざメソッドチェーンはいらないのでしょう。小さくシンプルであるためにあえて実装していない、ということですね。回答ありがとうございました。実際の所が、意図や議論の結果なのか、俎上に上がってないだけなのか、先延ばしの結果なのかは知りませんが、ライブラリやWikipediaの記述を見ると、意図したものかな?と推測ですが思います。関数型言語の影響マニュアルにも言及がありますし、ライブラリにも見受けられますが、関数型言語を参考にしたところが多々あるようです。Wikipediaには下記のように書かれています。1.x1994年1月、Python1.0がリリースした。主な特徴として関数型言語の基本であるラムダ計算を実装、MAP型、REDUCEなどが組み込まれている。Lispにある機能とよく似たキーワード引数が導入された。簡易ながら名前修飾を用いたカプセル化も実装された。2.x2000年に公開。ガベージコレクションやUnicode、リストが導入され一躍メジャーな言語となった。多くの機能をHaskellから参考している。以下もWikipediaより。Pythonは言語自身の機能をできるだけ小さくおさえ、ユーザがいつも必要とする最小限の機能のみを提供するように作られている。......基本機能にないものの多くはライブラリによって提供されている。メソッドチェーンにはメソッドの実装が必要で、それには組込型やそのスーパークラスでの実装が必要なので、組込みの部分が肥大化することになります。内部に組込型をもち、メソッドチェーン出来るメソッド群を持つクラスをライブラリとして作る方法もありますが、それはスマートでない(一つの見方として)というのがあります。外部関数として実装すれば、追加のライブラリへの実装で済みますし、追加の機能は追加のライブラリとしていけばよく、枯れた基本ライブラリに手を付けなくてよい利点があります。言語仕様や実装方法で欠点を回避したり、見方を変えればスマートになったりします。rubyは知りませんがjavascriptなら、Objectや自身のprototypeを拡張し、拡張する手段を設けて、動的にメソッドを追加してクラスを拡張しているライブラリがよくあります。pythonでも同様の事は可能だったと思いますが、しかし、それは別のライブラリに副作用を与えるライブラリという事でもあり、たぶんpythonはそれを良しとはしない気がします。以上と若干被りますが、小さくシンプルで重複した機能はいらないというpythonには既に関数型からもってきたモノがあり、いわば関数チェーンがあるので、わざわざメソッドチェーンはいらないのでしょう。小さくシンプルであるためにあえて実装していない、ということですね。回答ありがとうございました。16:38:06確かなことは知らないけれど、PythonとRubyのmap()の違いを1つ。1]というように、複数の配列・リストその他をとれる。map()をメソッドにしても、同様のことができるように実装できる。すると、複数の配列のどれを特別扱いするかで迷いそう。いうこともPythonでmar()が関数である理由の1つになっているかもしれない。これは思いつきませんでした。Facebookでシェア全てのコメントを見る「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。これ以上回答リクエストを送信することはできません。:はてなココの「ともだち」を表示します。回答リクエストを送信したユーザーはいませんすでに登録されている方はこちらからログインツイートするウォッチリスト4人が登録していますこの質問に含まれるキーワードJavaScript2780Python341Ruby760メソッド515人気の質問iPhoneで郵便が作れる(はがきや封書)、DigitalPost(デジタルポスト)というサービスがありました。50pt第一に、はてなブックマークでお気に入りに追加したidをすべて確認する方法はないでしょうか。1早期退職を申請したところ、このことは周りに話さないようにと言われました。}}${price}円{{/if}}知りたいことを検索してみようログインして回答する進んだ先のページで「許可する」ボタンを押してはてなによるアクセスを許可すると、認証が終わります。ご利用にあたりましては、はてな利用規約が適用されます。ご確認いただきご同意の上でご利用ください。