インポートモジュールパイソン
モジュールを使用するには、我々は最初のモジュールをインポートする必要があります。モジュールを使用してPythonのimport文。例えば、システムの数学に組み込まれたモジュール:
あなたは数学が、我々が定義されているすべてのパブリック関数、変数やクラスの数学モジュールにアクセスできる変数によってインポートされた変数のモジュールへのポインタであると考えることができます。
Math.pow >>>(2、0.5)#1 POW関数で 1.4142135623730951 >>>にMath.PIの#1 PIは可変である 3.141592653589793
我々は唯一の多くの機能に使用される数学のモジュールをインポートする場合は、いないすべての関数は、次の文を使用することができます。
以下からの数学の輸入 POW、罪、ログ
あなたが名前の競合が発生した場合はどのように行うには?例えば、数学のモジュールは、ログ機能を持って、ロギングモジュールはまた、ログ機能を持って、同時に使用する場合、どのように名前の競合を解決するには?
あなたは、関数の名前をモジュール名によって参照されなければならないので、モジュール名をインポートするインポートを使用するので、競合が存在しない場合:
。1つの インポート数学、ログイン 2 印刷 Math.log(10) #のコールログ機能が数学である 。3 logging.log(10、「何か」) #のロギング機能の通話記録であります
あなたがから...輸入インポートログ機能を使用している場合は、競合が発生することがバインドされています。この場合、競合を避けるために機能する「エイリアス」になったのは:
。1 から数学のインポートログ 2 からログインをインポートロガーとしてログを #のログログは現在ロガーなり 。3 印刷ログ(10) #のコール数学のログです 。4ロガー(10、「ログからインポート」) #の呼び出しがログインしていますログ
タスク
Pythonのはos.pathモジュールは、モジュールをインポートし、isdir()とISFILE()関数を提供し、指定されたディレクトリとファイルが存在するかどうかを判断するための関数を呼び出します。
注意:
動作環境として1.プラットフォームサーバなので、テストはまた、フォルダやファイルには、サーバー上の/data/webroot/resource/python/test.txt /データ/ Webルート/リソース/ Pythonのフォルダやファイルが存在するサーバーで、我々は、次をテストすることができます。
もちろん2.あなたはこのマシン上の対応するフォルダやファイルがあるかどうかをテストすることができます。
輸入OSの 印刷os.path.isdir(R'C:\ Windowsの) 印刷os.path.isfile(R'C:\ WINDOWS \のnotepad.exeを')
インポートOSの 印刷 os.path.isdir(R ' /データ/ウェブルート/リソース/ Pythonの' ) 印刷 os.path.isfile(R ' /data/webroot/resource/python/test.txt ')
ダイナミックインポートモジュールパイソン
あなたが存在しないモジュールをインポートする場合、PythonインタプリタはImportErrorがエラーを報告します。
1 >>> インポート何か 2 :トレースバック(最後の最新の呼び出し) 3 ファイル" <STDIN> "、行1、中 <モジュール> 4はImportError:いいえモジュールという名前の何か
時々、二つの異なるモジュールは、たStringIOとcStringIOたStringIOこの機能を提供するように、同じ機能を提供します。
Pythonは従ってPythonコードが遅い実行、解釈動的言語であるためです。
あなたはPythonコードの動作速度を向上させたい場合は、最も簡単な方法は、我々が大幅に実行速度を向上させることができるように、C言語での重要な機能の一部を書き換えることです。
同様の機能は、たStringIOは、純粋なPythonコードで書かれ、そして機能のcStringIO部分はCで書かれているので、cStringIOは高速に実行します。
間違った使用はImportError、私たちは多くの場合、動的にPythonでモジュールをインポートします:
1 試行: 2 から cStringIO インポートたStringIO 3 以外はImportError: 4 から StringIOをインポートたStringIO
cStringIOから導入されたコードでは、まず、それが失敗した場合(例えばcStringIOがインストールされていない)、してみてください、その後、StringIOをインポートしてみてください。cStringIOが存在しない場合はこのように、cStringIOモジュールが存在する場合、我々はより速い速度を得るでしょう、高々、コードが実行速度が低下しますが、それは、コードの通常の実行には影響しません。
アクションが間違ってキャプチャし、指定されたエラーをキャプチャする場合を除き、ステートメントを実行するようにしてください。
タスク
インポートを使用して... ...として、あなたはまた、別の名前の動的モジュール内に導入することができます。
Pythonの2.6 / 2.7は、JSONモジュールを提供していますが、Pythonの2.5およびそれ以前のバージョンは、JSONモジュールはありませんが、あなたは正確に同じを提供のsimplejsonモジュール、関数のシグネチャとこれら二つのモジュールの機能をインストールすることができます。
JSONモジュールにコードは、Python 2.5 / 2.6 / 2.7で動作可能で書きます。
1 トライ: 2 インポートJSON 3 以外はImportError: 4 インポートJSONなどのsimplejson 5 6 印刷 json.dumps({ ' のpython ':2.7})
使用パイソン__future__
Pythonの新しいバージョンの新機能を紹介しますが、実際には、古いバージョンでは、これらの機能はすでに存在しています。いくつかの新機能「を試す」には、特定の機能__future__モジュールをインポートすることによって達成することができます。
例えば、Pythonの整数除算の整数結果は依然として2.7です。
>>> 10月3日 3
しかし、Pythonの3.xのは、整数除算を向上させた、「/」フロート以外になり、「//」はまたそれはまだ整数です。
>>> 10月3日 3.3333333333333335 >>> 10 // 3 3
Pythonの2.7で導入される3.xの分割ルール、__future__分割を導入します。
>>> から __future__ インポート分割 >>> プリント 10月3日 3.3333333333333335
機能の新しいバージョンが古いバージョンと互換性がない場合は、この機能は、旧バージョンの新機能をテストするので、古いコードを__future__する古いバージョンで追加されます。
タスク
Pythonの3.xでは、Unicode文字列は、均一な、接頭辞Uを追加する必要はありません、と接頭辞bはstrをしなければならないバイトに保存されています。unicode_literalsの__future__は、Python 2.7のUnicode文字列を記述し使用してください。
1 から __future__ インポートunicode_literals 2つの 3 Sは= 「私はユニコードのですか?' 4 印刷でisinstance(s、ユニコード)