いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【Python】用語が分からない「メソッド」「モジュール」「ライブラリ」「パッケージ」

Pythonを弄っていて見聞きする言葉の意味が、素養のない私の頭には全く入らないので、ググって私なりに解釈してみた。厳密な意味での解釈からは程遠いことを前提に、実務的に区別することを目標にした。

・今回は、「メソッド」「モジュール」「ライブラリ」「パッケージ」。
・非常によく見聞きする言葉だが、Wet実験人間の私にとっては、もはや詰みである。

・メソッド:関数のこと。Excelの関数のイメージで良さそう。個別の計算・処理をしてくれる。
・モジュール:メソッドが集まったもの。.pyファイル。
・パッケージ:モジュールが集まったもの。
・ライブラリ:パッケージが集まったもの、らしい。だが、ここまで階層構造として名前をつける必要はあるのか……?素人考え的に、パッケージの上位概念もパッケージと呼んで不都合あるのだろうか。

・ざっくりと、ライブラリ>パッケージ>モジュール>メソッド、みたいな感じらしい。図書館>本棚>本>ページ、ぐらいの感覚か。
・よく使う構文だとどうなるのか、考えてみた。
・import mathのmathはモジュールらしい。
・import numpy as npのnumpyはパッケージらしい。
・import pandas as pdのpandasはライブラリらしい。
・ざっと調べて出てきた情報(サイトによってまちまちで結構怪しい。正しい情報を求める方は公式を参照していただきたい)では、複雑そうな機能を持つ塊ほど大きな括りになっている雰囲気らしい。どれをインポートする際でもimportナントカで事足るので、実務的に意識する必要はなさそう(理解はしていたほうが良いと思うが)。

・import matplotlib.pyplot as pltのmatplotlibはパッケージ(libだから本当はライブラリ?)、pyplotはモジュールらしい。matplotlibのあとのちっちゃい点は、「の」という意味みたい。意識していなかったが、メソッドを動かす際には、モジュール名.メソッド名に確かにしている(plt.plot()など)。そうすると、pd.DataFrameのDataFrameはDataFrameオブジェクトを作るメソッドなので、ライブラリ.メソッドなのか……?パッケージとモジュールを指定しなくても動くのだろうか?それとも、pandaaがライブラリという情報が誤りなのか?この階層構造はあまり深く気にしないほうが良い気もする。
・動くグラフでお世話になったfrom matplotlib.animation import ArtistAnimationの場合、matplotlibがパッケージ、animationがモジュール、ArtistAnimationがメソッドだろうか。そういえば、ArtistAnimationメソッドを使うとき、モジュール名.などをつけていなかった。メソッドを直接インポートすれば、モジュール名を指定する必要もないのかもしれない。from matplotlib.pyplot import *(matplotlibパッケージのpyplotモジュールのメソッドをすべてインポートする)でメソッドを直接実行できたのもそのためか。

・ちょっと理解が進んだような、しっくり来ていないような、なんとも言えない気持ちになった。コピペばかりでは宜しくないなぁ。。


おわり