2016-11-06 1 views
0

ここは初心者です。必要な変数を関数の引数として渡すべきではありません。なぜpythonのvariable.function()ですか?それが機能あるpythonではdataframe.head()、Rではhead(dataframe)はなぜですか?なぜこのようなPythonは一般的なのですか?

foo.bar()foo.__class__.bar(foo)

と同じことをして、引数が渡されますが、機能は経由して、オブジェクトに添付保存されています。

+0

Pythonはオブジェクト指向です。データフレームはオブジェクトであり、オブジェクトのメソッド(関数)を呼び出すことができます。 Pythonの 'head()'は、 'pandas.DataFrame'オブジェクトのメソッドです。パンダのソースコードを見てみましょう – Jakub

答えて

0

それは簡単ですそのクラス(型)、そうです。 foo.bar()という表記は、上記の表記にすぎません。

sams名のさまざまな機能をオブジェクトタイプに応じて多くのオブジェクトに割り当てることができるという利点があります。したがって、foo.bar()の呼び出し元は、オブジェクトに「bar」という名前で関連付けられている関数を呼び出しています。これは多形性と呼ばれ、ジェネリックプログラミングのようなあらゆる種類のものに使用できます。そのような機能をメソッドと呼びます。

スタイルは、オブジェクト指向とも呼ばれますが、一般的なプログラミングと同様に、より一般的な見た目の関数(メソッド)呼び出し表記法(例:Common LispとJuliaのマルチメソッド、またはHaskellのクラス)を使用しても実現できます。

関連する問題