Python の名前空間とスコープ

青灯夜游
青灯夜游オリジナル
2019-02-14 16:32:482142ブラウズ

Python では、すべてのパッケージ、モジュール、クラス、関数、およびメソッド関数には、変数名が解決される「名前空間」があります。 Pythonのネームスペースとスコープについては以下の記事で紹介していますので、ご参考になれば幸いです。

Python の名前空間とスコープ

ネームスペースとは:

ネームスペースは、プログラムがすべて名前は一意であり、競合することなく使用できます。複数の名前空間で同じ名前を使用し、それを異なるオブジェクトにマップできます。 [ビデオチュートリアルの推奨: Python チュートリアル]

たとえば、コンピューター内のディレクトリ ファイル システム構造。言うまでもなく、複数のディレクトリを持つことができ、各ディレクトリには同じ名前のファイルを持つことができます。ただし、絶対パスを指定してファイルを指定することもできます。

Python の名前空間は Python 辞書として実装されます。これは、名前 (キー) からオブジェクト (値) へのマッピングであることを意味します。ユーザーは、Python プログラムを作成する場合や名前空間を使用する場合にこれを知る必要はありません。

名前空間の種類:

ローカル名前空間: この名前空間には関数内のローカル名が含まれます。この名前空間は関数が呼び出されたときに作成され、関数が返されるまでのみ存続します。

グローバル名前空間: この名前空間には、プロジェクトで使用するさまざまなインポートされたモジュールの名前が含まれます。これはモジュールがプロジェクトに含まれるときに作成され、スクリプトが終了するまで存続します。

組み込み名前空間: この名前空間には、組み込み関数名と組み込み例外名が含まれます。

Python の名前空間とスコープ

名前空間のライフ サイクル:

名前空間のライフ サイクルは、オブジェクトのスコープによって異なります。オブジェクトのスコープが終了し、名前空間のライフサイクルが終了します。したがって、内部名前空間のオブジェクトには外部名前空間からアクセスできません。

スコープとは何ですか?

名前空間は、プログラム内のすべての名前を一意に識別するのに役立ちます。ただし、これは変数名をどこでも使用できるという意味ではありません。この名前には、プレフィックスなしで名前を使用できるプログラムの部分を定義するスコープもあります。名前空間と同様に、プログラムには複数のスコープがあります。

スコープは、名前空間に直接アクセスできる、つまり名前空間プレフィックスを使用せずにアクセスできるプログラムの領域を指します。言い換えれば、名前のスコープとは、関数内など、名前を明示的に使用できるプログラムの領域です。

名前のネームスペースは、そのスコープと同じです。スコープは静的に定義されますが、動的に使用されます。

以下は、プログラムの実行中に存在する可能性のあるいくつかのスコープのリストです。

● ローカル スコープ: 最も内側のスコープであり、現在の関数で使用できるローカル名のリストが含まれます。

● すべての囲み関数のスコープ: 名前の検索は、最も近い囲みスコープから開始され、外側に向かって移動します。

● 現在のモジュール内のすべてのグローバル名を含むモジュール レベルのスコープ。

● すべての組み込みの名前リストを含む最も外側のスコープ。最後に、この範囲で参照した名前を検索します。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がPython の名前空間とスコープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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