[Pythonの]基礎名前空間
その他
2019-12-28 00:48:23
訪問数: null
まず、定義の名前空間
変数名と値のマッピング
名前空間は、辞書の実装で、キーは、変数の名前である値は、変数の値であり、
第二に、名前空間の分類
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