ホームページ バックエンド開発 Python チュートリアル Pythonの名前空間について詳しく解説

Pythonの名前空間について詳しく解説

Jun 09, 2023 pm 09:10 PM
名前空間 変数 範囲

Python は動的言語として、コードの実行時に定数、変数、関数などの名前付き環境を維持します。この環境は名前空間であり、名前空間とも呼ばれます。この記事ではPythonの名前空間について詳しく紹介します。

  1. ネームスペースの概要
    Python のネームスペースは、名前とオブジェクトの対応関係を格納する辞書です。名前は識別子 (識別子) を指し、オブジェクトはすべてのオブジェクトを指します。 Python では、整数、浮動小数点数、文字列、関数、クラスなどを含むすべてがオブジェクトです。
  2. 名前空間の分類
    Python の名前空間は次の 3 種類に分類できます。

(1) 組み込み名前空間 (Built-in Namespace)
組み込みの名前付けスペースは、Python インタープリターの起動時にロードされる名前空間です。組み込みの名前空間には、開発者が直接使用できる print()、type()、str() などのいくつかの関数と変数がデフォルトで含まれています。組み込みの名前空間には、builtins モジュールを通じてアクセスすることもできます。

(2) グローバル名前空間(Global Namespace)
グローバル名前空間とは、関数やクラスで定義されるのではなく、モジュールで定義される変数や関数などを指します。 1 つのモジュールで定義されたグローバル変数には、他のモジュールでもアクセスできます。モジュールにはグローバル名前空間が 1 つだけあり、モジュール内のすべての関数がこの名前空間にアクセスできます。

(3) ローカル名前空間(ローカル名前空間)
ローカル名前空間は、関数呼び出し時に作成される名前空間で、関数のローカル変数、パラメータ、一時変数などを格納するために使用されます。関数の呼び出しが終了すると、ローカルの名前空間も破棄されます。

  1. 名前空間検索ルール
    変数を使用する場合、Python はまずローカル名前空間で対応する変数を検索します。見つからない場合は、グローバル名前空間で検索し、最後に変数を検索します。組み込みの名前空間。つまり、Python はローカル、グローバル、組み込みの順に変数を検索しますが、この変数の検索順序を LEGB ルールと呼びます。
  2. 名前空間のスコープ
    Python では、各関数、モジュール、クラスには独自の名前空間があります。名前がオブジェクトにバインドされている場合、その名前はその名前空間内でのみ意味を持ちます。名前がローカル名前空間にバインドされている場合、その名前は関数内でのみ意味を持ちます。名前がグローバル名前空間にバインドされている場合、名前はモジュール内で意味を持ちます。名前が組み込み名前空間スペースにバインドされている場合は、モジュール内で意味を持ちます。 Python インタープリター全体で認識されます。
  3. globals() 関数と locals() 関数を使用して名前空間を取得する
    Python で globals() 関数と locals() 関数を使用して、対応するグローバル名前空間とローカル名前空間を取得できます。 globals() 関数はグローバル名前空間の辞書を返し、locals() 関数はローカル名前空間の辞書を返します。
  4. 名前空間に関する注意
    (1) 名前空間内の名前は、正当な識別子である必要があります。
    (2) 関数とクラスは新しい名前空間を作成します。
    (3) 変数名は、名前空間内の他のオブジェクトに再バインドできます。
    (4) global ステートメントを使用して、関数内の変数がグローバル変数を参照できるようにします。
    (5) 関数内の変数が外部関数のローカル変数を参照できるようにするには、非ローカル ステートメントを使用します。
    (6) Python の名前空間検索は LEGB ルールに基づいています。
  5. 結論
    この記事では、名前空間の概要、名前空間の分類、名前空間の検索ルール、名前空間のスコープ、globals() 関数と locals() 関数による名前空間の取得など、Python の名前空間について詳しく紹介します。 Python 初心者にとって、名前空間を理解することは、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を入力してください...

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

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

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

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

中間の読書にどこでも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でメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

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

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

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

See all articles