Pythonの理解モジュール、スクリプト、ライブラリ、パッケージ

  • 概要概要

    PythonモジュールとPythonパッケージは、モジュラープログラミングを容易にする2つのメカニズムです

    スクリプトが直接実行されることを意図していますPythonのファイルです。

    モジュールは、スクリプトや他のモジュールにインポートされることを意図していますPythonのファイルです。

    パッケージには、仕事一緒に、特定の機能を提供することに関連するモジュールの集合体です。

    ライブラリが緩く、「コードの束」を意味する包括的な用語です。これらは、幅広い機能を提供できる数十から数百の個別のモジュールを持つことができます。

    • Matplotlibはプロットライブラリです。
    • Python標準ライブラリには、一般的なタスクを実行するための何百ものモジュールが含まれています

    パッケージモジュールだけが、Pythonに固有の明確な意味を持っています。

  • モジュール

    Pythonでモジュールを定義するには、実際には3つの異なる方法があります

    1. モジュールはで書くことができます Python itself
    2. モジュールはC、re(正規表現)モジュールのように、実行時に動的に書き込みおよびロードできます。
    3. built-inモジュールは、本質的に同様に、インタプリタに含まれるitertoolsモジュール

    モジュールの内容は、3つのケースすべてで同じ方法でアクセスされます:importステートメントを使用します。

    インタプリタはimportステートメントを実行するfile.py、次のソースからアセンブルされたPython変数でアクセスできる検索パスと呼ばれるディレクトリのリストを検索しsys.pathます。

    • 入力スクリプトが実行されたディレクトリ、またはインタプリタがインタラクティブに実行されている場合は現在のディレクトリ
    • PYTHONPATH環境変数に含まれるリストディレクトリ
    • Pythonのインストール時に構成されたディレクトリのインストール依存リスト
    import re
    re.__file__	# 查看module位置
    

    import module_nameモジュールの内容に呼び出し元が直接アクセスできるようにすることはありません。各モジュールには、モジュールで定義されたすべてのオブジェクトのグローバルシンボルテーブルとして機能する独自のプライベートシンボルテーブルがありますしたがって、モジュールは個別の名前空間を作成します

    組み込み関数dir()は、名前空間で定義された名前のリストを返します。

  • 脚本

    任意の.pyモジュールが含まれているファイルは、基本的にも、Pythonスクリプトであり、それは1のように実行することができない理由はありません。

    $ python file.py
    

    最初にモジュールを実行します file.py

    場合は.py、ファイルがモジュールとしてインポートされ、Pythonは特別な設定dunderの変数を__name__モジュールの名前に。ただし、ファイルがスタンドアロンスクリプトとして実行される場合は__name__、文字列に設定されます"__main__"

    モジュールは、モジュール内に含まれる機能をテストする目的で、スタンドアロンスクリプトとして実行する機能を備えて設計されていることがよくあります。これはユニットテストと呼ばれます

  • パッケージ

    パッケージには、ディレクトリ内のモジュールの集まりです。

    パッケージは、ドット表記を使用してモジュール名前空間の階層構造を可能にします

    モジュールがグローバル変数名間の衝突を回避するのに役立つのと同じようにパッケージはモジュール名間の衝突を回避するのに役立ちます。

    パッケージは、OS固有の階層ファイル構造を使用します。

    名前の付いたファイル__init__.pyがパッケージディレクトリに存在する場合、パッケージまたはパッケージ内のモジュールがインポートされたときに呼び出されます。これは、パッケージレベルのデータの初期化など、パッケージ初期化コードの実行に使用できます。

    Pythonはこの規則に従い__init__.pyます。パッケージディレクトリ内ファイルに、という名前のリストが含ま__all__れている場合、ステートメントfrom packageName import *が検出されたときにインポートする必要があるモジュールのリストと見なされます。

  • 参考文献

  1. 本物のPython:Pythonモジュールとパッケージ–はじめに
  2. 実際のPython:スクリプト、モジュール、パッケージ、ライブラリ
  3. StackOverflow:Pythonのモジュールとライブラリの違いは何ですか?
  4. Pythonドキュメント:モジュール

おすすめ

転載: blog.csdn.net/The_Time_Runner/article/details/115023634