必要な機能を実装するための Python モジュールのインポート
モジュールを使用すると、Pythonコード スニペットを論理的に整理できます。
関連するコードをモジュールに割り当てると、コードがより使いやすく、理解しやすくなります。
モジュールも Python オブジェクトであり、バインドまたは参照に使用されるランダムな名前属性が付いています。
簡単に言うと、モジュールは Python コードを保存するファイルです。モジュールは、関数、クラス、変数を定義できます。モジュールには実行可能コードを含めることもできます。
例
aname というモジュールの Python コードは、通常、aname.py というファイルにあります。次の例は、単純なモジュール support.py です。
def print_func( par ):
print "Hello : ", par
import ステートメント
Python ソース ファイルを使用したい場合は、別のソース ファイルで import ステートメントを実行するだけです。構文は次のとおりです。
import module1[, module2[,... moduleN]
インタプリタが import ステートメントに遭遇すると、モジュールが現在の検索パスにあればインポートされます。
検索パスは、インタープリターが最初に検索するすべてのディレクトリのリストです。モジュール hello.py をインポートしたい場合は、スクリプトの先頭にコマンドを置く必要があります:
#!/usr/bin/python
# モジュールのインポート
import support
# これで、次のコマンドを呼び出すことができます。モジュールに含まれる関数
support.print_func("Zara")
上記の例の出力結果:
Hello : Zara.
モジュールは、何度実行しても、インポートされるのは 1 回だけです。輸入。これにより、インポートされたモジュールが何度も実行されるのを防ぎます。
From…import ステートメント
Python の from ステートメントを使用すると、指定した部分をモジュールから現在の 名前空間 にインポートできます。構文は次のとおりです:
>>>from modname import name1[, name2[, ... nameN]]
たとえば、モジュール fib のフィボナッチ関数をインポートするには、次のステートメントを使用します:
>>> from fib import fibonacci
このステートメントは、fib モジュール全体を現在の名前空間にインポートするのではなく、このステートメントを実行するモジュールのグローバル シンボル テーブルに fib 内の 1 つの fibonacci を導入するだけです。
From...import * ステートメント
次のステートメントを使用するだけで、モジュールのすべてのコンテンツを現在の名前空間にインポートすることもできます:
>>>from mod_name import *
Thisモジュール内のすべてのプロジェクトをインポートする簡単な方法を提供します。ただし、このステートメントは乱用すべきではありません。
モジュールの検索
モジュールをインポートする場合、Python パーサーによるモジュールの場所の検索順序は次のとおりです:
現在のディレクトリ
現在のディレクトリにない場合、Python は次のディレクトリの下で各モジュールを検索します。シェル変数 PYTHONPATH 目次
。
どちらも見つからない場合、Python はデフォルトのパスをチェックします。 UNIX では、通常、デフォルトのパスは /usr/local/lib/python/
です。モジュール検索パスは、システム モジュールの sys.path 変数に保存されます。変数には、現在のディレクトリ、PYTHONPATH、および インストール プロセスによって決定されるデフォルトのディレクトリが含まれます。
PYTHONPATH変数環境変数として、PYTHONPATHはリストにインストールされた多数のディレクトリで構成されます。 PYTHONPATH の構文は、シェル変数 PATH の構文と同じです。 Windows システムの場合、一般的な PYTHONPATH は次のとおりです: set PYTHONPATH=c:python20lib; UNIX システムの場合、一般的な PYTHONPATH は次のとおりです: set PYTHONPATH=/usr/local/lib/python名前空間と関数 ドメイン変数は、一致するオブジェクトを保持する名前(識別子)です。名前空間は、変数名 (キー) とそれに対応するオブジェクト (値) を含む辞書です。 は、ローカル名前空間とグローバル名前空間の変数にアクセスできます。ローカル変数がグローバル変数と同じ名前を持つ場合、ローカル変数はグローバル変数をオーバーライドします。
各関数には独自の名前空間があります。クラスメソッドのスコープ規則は、通常の関数の場合と同じです。
Python は、関数内で割り当てられた変数がローカルであると仮定して、変数がローカルであるかグローバルであるかをインテリジェントに推測します。 したがって、関数内のグローバル変数に値を代入したい場合は、global ステートメントを使用する必要があります。 グローバル VarName の式は、VarName がグローバル変数であることを Python に伝えるため、Python はローカル名前空間でこの変数を検索しません。たとえば、グローバル名前空間で変数moneyを定義します。次に、関数内の変数moneyに値を代入すると、Pythonはmoneyがローカル変数であると想定します。ただし、アクセスする前にローカル変数 Money を宣言していないため、結果は UnboundLocalError になります。この問題は、グローバル ステートメントのコメントを解除することで解決できます。 >>>#!/usr/bin/python
>>>Money = 2000
>>>def AddMoney():
# コードを修正したい場合、次のコメントを外します ;
dir( ) 関数
dir() 関数は
stringsのソートされたリストであり、その内容はモジュールで定義された名前です。
返されるリストには、モジュールで定義されているすべてのモジュール、変数、関数が含まれます。これは簡単な例です:
>>>#!/usr/bin/python
>>># 組み込み数学モジュールをインポートします
>>>import math >> ;>content = dir(math)
['doc', '
file', 'name', 'acos '、'asin'、'atan'、
'atan2'、'ceil'、'cos'、'cosh'、'degrees'、'e'、'exp'、
'fabs'、'floor '、'fmod'、'frexp'、'hypot'、'ldexp'、'log'、
'log10'、'modf'、'pi'、'pow'、'ラジアン'、'sin'、'sinh ',
'sqrt ', 'tan', 'tanh']
ここで、
特殊文字文字列変数nameはモジュールの名前を指し、fileはモジュールのインポートされたファイルの名前を指します。
globals() 関数と locals() 関数 呼び出される場所に応じて、globals() 関数と locals() 関数を使用して、グローバル名前空間とローカル名前空間の名前を返すことができます。 locals() が関数内で呼び出された場合、関数内でアクセスできるすべての名前が返されます。 globals() が関数内で呼び出された場合、関数内でアクセスできるすべてのグローバル名が返されます。 両方の関数の戻り値の型は辞書です。したがって、keys() 関数を使用して名前を抽出できます。 モジュールがスクリプトにインポートされるとき、モジュールのトップレベル部分のコードは 1 回だけ実行されます。そのため、モジュール内のトップレベルのコードを再実行したい場合は、 reload() 関数を使用できます。この関数は、以前にインポートされたモジュールを再インポートします。構文は次のとおりです:
>>>reload(module_name)
ここで、 module_name には文字列形式ではなくモジュールの名前を直接入力する必要があります。たとえば、hello モジュールをリロードする場合は、次のようにします:
>>>reload(hello)
Python のパッケージパッケージは、モジュールとモジュールを定義する階層的なファイル ディレクトリ構造です。 sub-package 、およびサブパッケージの下のサブパッケージで構成される Python アプリケーション環境。
電話ディレクトリ内の Pots.py ファイルについて考えてみましょう。このファイルには次のソース コードがあります:
>>>#!/usr/bin/python
>>>def Pots():
print "I'm Pots Phone"
同様に、異なる関数を保存する他に 2 つのファイルがあります:
Phone/Isdn.py には関数 Isdn() が含まれます
Phone/G3.py には関数 G3() が含まれます
さて、Phone以下のファイル init.py を作成します:
- Phone/init.py
- Phone をインポートするとき、すべての機能を使用できるようにするには、次のように init.py で明示的なインポート ステートメントを使用する必要があります。 :
>>>from Pots import Pots
>>>from Isdn import Isdn
>>>from G3 import G3
- これらのコードを init.py に追加した後、インポートします電話 これらのクラスはすべてパッケージ化すると利用できます。
>>>#!/usr/bin/python
>>># 次に、電話パッケージをインポートします。
>>>電話をインポート
>>> 。 Pots()
>>>Phone.Isdn()
>>>Phone.G3()
上記の例の出力結果:
I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone
上記のように、例のために、各ファイルに関数を 1 つだけ配置しましたが、実際には多くの関数を配置できます。これらのファイルで Python クラスを定義し、これらのクラスのパッケージを構築することもできます。
以上が必要な機能を実装するための Python モジュールのインポートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
