目次
import ステートメント
From...import * ステートメント
モジュールの検索
>&gt ;>content = dir(math)" >>>>import math >&gt ;>content = dir(math)
そのため、モジュール内のトップレベルのコードを再実行したい場合は、 reload() 関数を使用できます。この関数は、以前にインポートされたモジュールを再インポートします。構文は次のとおりです:
ホームページ バックエンド開発 Python チュートリアル 必要な機能を実装するための Python モジュールのインポート

必要な機能を実装するための Python モジュールのインポート

Mar 24, 2017 pm 03:56 PM
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

は、ローカル名前空間とグローバル名前空間の変数にアクセスできます。ローカル変数がグローバル変数と同じ名前を持つ場合、ローカル変数はグローバル変数をオーバーライドします。

各関数には独自の名前空間があります。クラスメソッドのスコープ規則は、通常の関数の場合と同じです。

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)

>>>print content;上記の出力例:

['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() 関数を使用して名前を抽出できます。

reload() 関数

モジュールがスクリプトにインポートされるとき、モジュールのトップレベル部分のコードは 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

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

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

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

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

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

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

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

正規表現とは何ですか? 正規表現とは何ですか? Mar 20, 2025 pm 06:25 PM

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

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

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

人気のあるPythonライブラリとその用途は何ですか? 人気のあるPythonライブラリとその用途は何ですか? Mar 21, 2025 pm 06:46 PM

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

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

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

See all articles