• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Pyhonを見ていて、関数とメゾットがある、との説明があります。)

Pythonの関数とメゾットの非統一性について

このQ&Aのポイント
  • Pythonの関数とメゾットには非統一性があります。
  • 要素の追加などの操作はメゾットとして実装され、オブジェクト自体が書き換わります。
  • 一方、maxなどの汎用的な操作は関数として提供されています。この非統一性の理由については、言語の考え方やオブジェクト指向の原則に基づいていますが、詳細は明確には分かっていません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

まずは、タイポでしょうけど「メゾッド」じゃなくって「メソッド」です。methodですね。 >どうしてこのような非統一的な環境となっているのでしょうか? 個人的には僕も嫌いですね(笑)。 何か深い理由がある、ってわけじゃあ無いと思うんですが。 Pythonは元々、最初に設計された時、オブジェクト指向は全く考えていなかった、と聞きます。あとで付け足された、とか。 その時の名残なんでしょうね。 その辺はRubyの方が設計はスッキリしてますね。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

この辺をどうぞ。 Design and History FAQ ? Python v2.6.5 documentation http://docs.python.org/faq/design.html#why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list Why does Python use methods for some functionality (e.g. list.index()) but functions for other (e.g.?len(list))? http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm クラスのメソッドとするよりは、関数にしたほうがわかりやすいだろうと 考えているとかありますね。 First of all, I chose len(x) over x.len() for HCI reasons (def __len__() came much later). There are two intertwined reasons actually, both HCI: この文章だと len ですが、後のほうでmax も同種のものという記述が出てきます。

関連するQ&A