1. ホーム
  2. python

[解決済み] Pythonのモジュールとライブラリの違いは何ですか?

2022-09-15 03:27:40

質問

私はJavaのバックグラウンドを持っていますが、Pythonは初めてです。私は先に行く前に、私が正しくPythonの用語を理解していることを確認したい。

私の理解では モジュール は、多くのスクリプトによってインポートされることができるスクリプトであり、読書を容易にするために。ちょうどJavaでクラスがあり、そのクラスは他の多くのクラスによってインポートされることができるようなものです。

私の理解では ライブラリ です。ライブラリには多くの モジュール を含んでおり、その用途によって分けられています。

私の疑問は、ライブラリはパッケージのようなもので、たとえば food というパッケージがあります。

  • chocolate.py
  • スイーツ.py
  • ビスカッツ.py

food パッケージに含まれますか?

それともライブラリはパッケージを使用するのでしょうか? drink :

  • milk.py
  • juice.py

に含まれています。その library には2つのパッケージが含まれているのですか?

また、アプリケーションプログラミングインターフェース(API)は、通常、ライブラリのセットを含んでおり、これは階層の一番上にあります。

  1. API
  2. ライブラリ
  3. パッケージ
  4. モジュール
  5. スクリプト

つまり、APIは2~5のすべてで構成されるのですか?

どのように解決するのですか?

から Pythonチュートリアル - モジュール

  • モジュール :

    モジュールは、Pythonの定義とステートメントを含むファイルです。ファイル名はモジュール名に接尾辞として .py が付加されたモジュール名です。

  • パッケージ :

    パッケージは、"ドット付きモジュール名 "を使ってPythonのモジュール名前空間を構造化する方法です。

のドキュメントを読むと import の文が詳細を与えてくれますが、例えば

Pythonは1種類の モジュールオブジェクト であり、すべてのモジュールはこの モジュールがPythonで実装されているか、Cで実装されているか、その他の言語で実装されているかにかかわらず、すべてのモジュールはこの型です。 で実装されているかどうかに関わらず、すべてのモジュールはこのタイプです。モジュールを整理し、名前付けの階層を提供するために、Pythonにはパッケージという概念があります。 Pythonはパッケージという概念を持っています。

パッケージはファイルシステム上のディレクトリ、モジュールはディレクトリ内のファイルと考えることができます。 モジュールをディレクトリ内のファイルと考えることができますが、このアナロジーをあまり文字通りにはとらないでください。 しかし、パッケージとモジュールはファイルシステムから発生する必要はないので、このアナロジーをあまり文字通りにとらないでください。 システムから発生する必要はないからです。このドキュメントでは、このディレクトリとファイルという便利な例えを使います。 このドキュメントでは、ディレクトリとファイルという便利なアナロジーを使います。ファイルシステム ディレクトリのように、パッケージは階層的に構成され、パッケージは通常のモジュールと同様にサブパッケージを含むことができます。 パッケージには通常のモジュールと同様にサブパッケージが含まれます。

覚えておくべき重要なことは すべてのパッケージはモジュールであるが を覚えておくことが重要です。別の言い方をすれば、パッケージはモジュールの特別な種類に過ぎません。 特別な種類のモジュールです。具体的には __path__ 属性を含むモジュールはパッケージとみなされます。

したがって、この用語は module は特定の実体を指しています。それは、インスタンスが module オブジェクトであるクラスです。また、類推により、これらのインスタンスが作成されるファイルシステム内のファイルを参照するために使用されます。

この用語は スクリプト という用語は、実行されることを目的としたモジュールを指すのに使われます。これは、"program" や "application" と同じ意味を持っていますが、それは は通常 と同じ意味であるが、通常、単純で小さなプログラム(つまり、せいぜい数百行からなる単一のファイル)を記述するために使用される。スクリプトを書くには数分から数時間かかります。

この用語は ライブラリ とは、単に多くのアプリケーションで使用できるように設計されたコードの束の総称です。これは、特定のアプリケーションで使用できるいくつかの一般的な機能を提供します。

モジュール/パッケージ/その他の何かが公開されたとき、人々はしばしばそれをライブラリと呼びます。多くの場合、ライブラリはパッケージまたは関連する複数のパッケージを含みますが、単一のモジュールである場合もあります。

ライブラリは通常、特定の機能を提供しません。つまり、ライブラリを実行することはできません。

APIは文脈によって異なる意味を持つことがあります。例えば

  • のようなプロトコルを定義することができます。 DB API または バッファプロトコル .
  • は、アプリケーションとの対話の仕方を定義することができます(例えば Python/C API )
  • ライブラリ/パッケージに関連する場合、それは単にその機能(関数/クラス/定数などのセット)のためにそのライブラリによって提供されるインターフェイスです。

どのような場合でも、APIは ではなく python のコードではありません。それは、多かれ少なかれ形式的な記述です。