[Pythonの]基礎名前空間

まず、定義の名前空間

  変数名と値のマッピング

  名前空間は、辞書の実装で、キーは、変数の名前である値は、変数の値であり、

第二に、名前空間の分類

  Pythonのプログラム実行処理2-3名前空間アクティビティが存在することになるが、(関数呼び出し、3つの名前空間は、関数呼び出しの終了後、2つのネームスペースがあり、そこです) 

  三つのカテゴリーに名前空間の場所に応じて変数:

    ローカル名前空間:地元では、関数のパラメータを含む機能所有、名前空間、関数内のローカル変数を参照する
    グローバル名前空間:グローバル、モジュール(の.pyファイル)を参照する名前空間であって、機能を持っています、コンテンツクラス、グローバル変数は、インポートされたモジュール
    内蔵された名前空間:ビルドでは、組み込み関数、異常のpythonを指します。

    同じ名前空間、変数名は繰り返すことができない;異なる名前空間、それぞれ独立変数名の

第三に、名前空間のライフサイクル

  ローカル名前空間:関数呼び出しを作成するときに、関数呼び出しの終了後に削除するために
  グローバル名前空間を:作成したときのモジュールは、ロードされた彼らは削除されたが終了します通訳のpython
  名前空間ビルトイン:作成した打ち上げのPythonインタプリタでは、が終了します通訳のpythonそれらが削除されました

第四に、アクセスの名前空間

  地元の人について()関数は、ローカル名前空間へのアクセスに使用することができます
  グローバル()関数はグローバル名前空間にアクセスするために使用することができます

  標準的なケースは次のとおりです。
    地元の地元の人々については使用して()
    グローバルグローバルを(使用します)

  特殊なケース:
    グローバルのローカル、使用()、すべてのコンテンツを視聴するためには、グローバルネームスペースではありません、
    しかし、グローバルネームスペースの内容へのローカルアクセスで

第五に、作成名前空間の順序

  パイソン開始インタプリタ - >内蔵の名前空間を作成 - >モジュールのロード - >グローバル名前空間を作成します - >関数が呼び出される - >ローカル名前空間を作成

第六に、破壊の名前空間の順序

  機能の終了を呼び出し - >ローカル名前空間を破壊する - >が終了します通訳のpython - >グローバル名前空間を破壊する - >ビルトイン名前空間 

  要約すると:ローカル名前空間は、動的に呼び出された関数から作成さでは、関数呼び出しの動的破壊の終わりに

VIIスコープ

  1の概念:これは、プログラム実行中、可変缶機能(適用)範囲は変数
        *クラス、関数、モジュール、スコープを生成し、スコープがブロックされません

  2、分類の範囲:
    位置変数は、スコープは、4つのカテゴリ(LEGB)に分けることができる
    (関数の範囲内の)ローカルスコープ:ローカル
    囲む:(2つの入れ子機能をスコープを囲む、外側インサートスコープセット関数)
    参加無料:グローバルスコープ(スコープモジュール)
    Bulidイン:内蔵のスコープ(組み込みのPython)

  3、ルールに従う、ルールの適用範囲を見つけるLEGB

    スコープ、グローバルスコープを囲むローカルスコープのため、によると、組み込みの検索機能の役割は、見つけたら、彼らが見つけることが続行されません
    NameError:何も見つからない場合は、例外がでLEGBに発生します。名前「ABC」が定義されていません

    (1)ローカルスコープローカルスコープ、囲みスコープ、グローバルスコープ、組み込み変数のスコープへのアクセス
    (2)は、スコープ、グローバルスコープドメイン効果を囲むスコープへのアクセスをブロックします変数のスコープは、構築された
        ローカルスコープ内の変数にアクセスすることはできませ囲む範囲を
    グローバルスコープが自分へのアクセス権を持つことができ、内蔵のスコープの変数は、(3)
        囲みスコープの内容にアクセスし、ローカルスコープを持っていません 

八、違い

  ローカル変数:関数内で宣言した変数は、関数が唯一の有効な
  グローバル変数:変数は、モジュール内で宣言され、モジュール全体の有効な

  グローバル変数は不変のデータを入力している、グローバル変数変更することはできません機能
  グローバル変数は変数ですデータ型は、関数がグローバル変数を変更することができるとき
  (パラメータはグローバル変数の型のデータの関数に渡された場合、関数呼び出しの間に複数回は、グローバル変数が変更されます)

ナイン、キーワード

  グローバル:グローバル変数にローカルスコープタグは、変数である
       ローカル変数にグローバル変数であってもよいです

  非局所:フラグ変数は、外側閉鎖スコープのローカルスコープ内の変数である
      外層(非グローバル)変数を修正することができます

おすすめ

転載: www.cnblogs.com/Tree0108/p/12110103.html