Python学習#10モジュール
3090 ワード
この章ではpythonのモジュールインポートメカニズム、一般的なインポート方法、ディレクトリ構造とパッケージ構造の関係を理解します.init_.pyの使い方とよくあるpythonパッケージ管理ツールの紹介.
モジュール
モジュールはpythonコードを論理的に組織することをサポートします.コード量がかなり大きくなると、コードを組織的なコードセグメントに分けて、相互作用を保証することを前提としたほうがいいです.pythonでは、コード再利用を実現するためにモジュールを呼び出すことができます.
モジュールとファイル
モジュールのインポートには、ファイルシステムの「事前定義領域」で検索する「パス検索」というプロセスが必要である.pyファイル.これらの事前定義領域は、python検索パスの集合です.パス検索と検索パスは、ファイルを検索する操作と、ディレクトリのセットを検索する操作の2つの異なる概念です.sysモジュールのpathを呼び出すことで検索パスを調べることができます.呼び出しsys.moduleは、現在インポートされているモジュールとその場所を見つけることができます.
ネームスペース
名前空間は、オブジェクトへの名前識別子のマッピングです.この前の章では、ローカルネームスペース、グローバルネームスペース、および組み込みネームスペースを含むネームスペースについて説明しました.プロパティにアクセスすると、解釈は、ローカル、グローバル、組み込みネームスペースの順に検索されます.
モジュールのインポート import文を使用してモジュールをインポートします. import sys
from...import...を使用して、指定したモジュール属性をインポートします. from module import name1
import...as...を使用してインポートしたモジュールの名前を変更します. import Tkinter as tk
複数行同時にインポートすることもできます.
モジュールビルド関数 _import_():実際にモジュールの関数をインポートすると、import文がこの関数を呼び出してインポート作業を完了します. globals():呼び出し元のグローバルネームスペースの辞書を返します. locals():呼び出し元のローカル名空間の辞書を返します. reload(module):インポート済みモジュール を再インポート
パッケージ
パッケージは、モジュールとサブパッケージからなるpythonアプリケーション実行環境を定義する階層化されたファイルディレクトリ構造です.パッケージは、次の問題を解決するために使用されます.は平坦な名前空間に階層的な組織構造を加えた. では、プログラマが関連するモジュールを組み合わせることができます. では、配布者が混乱したファイルではなくディレクトリ構造を使用することができます. は、競合するモジュール名を解決するのに役立ちます.
ディレクトリ構造
パッケージの例:
Phoneは最上階のバッグで、voicedtaなどはそのサブバッグです.サブパッケージは、import Phone.Mobile.Analogはfrom...importを使用して異なるニーズをインポートすることもできます.
上のディレクトリ構造では多くのことがわかります.init_.pyファイル、これらは初期化モジュールで、from...import文はサブパッケージをインポートする必要があります.
絶対インポートと相対インポート
パッケージの使用はますます広がり、サブパッケージをインポートすると、実際の標準ライブラリと名前が競合することが多い.パッケージモジュールは、まずパッケージ内で相対的なインポートを実行し、標準モジュールを非表示にするため、同じ名前の標準ライブラリモジュールを非表示にします.
このため、すべてのインポートは現在絶対的と考えられています.つまり、これらの名前はpythonパスでアクセスする必要があります(sys.path).
絶対注ぎ込み特性はモジュール作成者のいくつかの特権を制限し、import文の自由を失った.インポートプロパティに対してimport構文を少し変更し、サブパッケージのどこでモジュールが見つかるかをインポート者に知らせる.
自動読み込みモジュール
python解釈器が標準モードで起動すると、一部のモジュールは解釈器によって自動的にインポートされ、システム関連の操作に使用されます.通過するmodulesは、現在解釈器にロードされているモジュールを表示します.
属性をインポートしたくない場合は、属性名の前に下線()を付けることができます.に表示されます.
pythonのパッケージ処理ツール
pip、後で補充します.国内ではpipの使用に問題が発生する可能性があります.ssl関連エラーが発生した場合は、pip install xx-iを使用できます.http://pypi.douban.com/simple/--trusted-host pypi.douban.comはxxをインストールが必要なパッケージに置き換えるだけでpython基礎学習本章を終了し、次の章では最初の高度なアプリケーションマルチスレッド処理について議論します.
モジュール
モジュールはpythonコードを論理的に組織することをサポートします.コード量がかなり大きくなると、コードを組織的なコードセグメントに分けて、相互作用を保証することを前提としたほうがいいです.pythonでは、コード再利用を実現するためにモジュールを呼び出すことができます.
モジュールとファイル
モジュールのインポートには、ファイルシステムの「事前定義領域」で検索する「パス検索」というプロセスが必要である.pyファイル.これらの事前定義領域は、python検索パスの集合です.パス検索と検索パスは、ファイルを検索する操作と、ディレクトリのセットを検索する操作の2つの異なる概念です.sysモジュールのpathを呼び出すことで検索パスを調べることができます.呼び出しsys.moduleは、現在インポートされているモジュールとその場所を見つけることができます.
ネームスペース
名前空間は、オブジェクトへの名前識別子のマッピングです.この前の章では、ローカルネームスペース、グローバルネームスペース、および組み込みネームスペースを含むネームスペースについて説明しました.プロパティにアクセスすると、解釈は、ローカル、グローバル、組み込みネームスペースの順に検索されます.
モジュールのインポート
複数行同時にインポートすることもできます.
モジュールビルド関数
パッケージ
パッケージは、モジュールとサブパッケージからなるpythonアプリケーション実行環境を定義する階層化されたファイルディレクトリ構造です.パッケージは、次の問題を解決するために使用されます.
ディレクトリ構造
パッケージの例:
Phone/
_init_.py
common.py
Voicedta/
_init_.py
Post.py
Fax/
_init_.py
G3.py
Mobile/
_init_.py
Analog.py
Phoneは最上階のバッグで、voicedtaなどはそのサブバッグです.サブパッケージは、import Phone.Mobile.Analogはfrom...importを使用して異なるニーズをインポートすることもできます.
上のディレクトリ構造では多くのことがわかります.init_.pyファイル、これらは初期化モジュールで、from...import文はサブパッケージをインポートする必要があります.
絶対インポートと相対インポート
パッケージの使用はますます広がり、サブパッケージをインポートすると、実際の標準ライブラリと名前が競合することが多い.パッケージモジュールは、まずパッケージ内で相対的なインポートを実行し、標準モジュールを非表示にするため、同じ名前の標準ライブラリモジュールを非表示にします.
このため、すべてのインポートは現在絶対的と考えられています.つまり、これらの名前はpythonパスでアクセスする必要があります(sys.path).
絶対注ぎ込み特性はモジュール作成者のいくつかの特権を制限し、import文の自由を失った.インポートプロパティに対してimport構文を少し変更し、サブパッケージのどこでモジュールが見つかるかをインポート者に知らせる.
自動読み込みモジュール
python解釈器が標準モードで起動すると、一部のモジュールは解釈器によって自動的にインポートされ、システム関連の操作に使用されます.通過するmodulesは、現在解釈器にロードされているモジュールを表示します.
属性をインポートしたくない場合は、属性名の前に下線()を付けることができます.に表示されます.
pythonのパッケージ処理ツール
pip、後で補充します.国内ではpipの使用に問題が発生する可能性があります.ssl関連エラーが発生した場合は、pip install xx-iを使用できます.http://pypi.douban.com/simple/--trusted-host pypi.douban.comはxxをインストールが必要なパッケージに置き換えるだけでpython基礎学習本章を終了し、次の章では最初の高度なアプリケーションマルチスレッド処理について議論します.