Pythonの学習15--名前空間とスコープ

A.名前空間

地元関係を結合/オブジェクト名のマッピングに保存されている名前空間。X = 3の場合、Pythonは、オブジェクト3に格納された3 xは、名前バインディング関係を格納するためにメモリ空間を割り当てます
名前空間、デルxは結合関係をクリアします。

1.1ビルトイン名前空間

それが格納するために使用されるロードされた名前空間であることが第一であるので、起動/シャットダウンおよび発生/復旧通訳のpythonを伴ういくつかの組み込みのような名前、組み込みの関数名
>>>最大
<ビルトイン関数max>ビルトイン#内建

1.2グローバルネームスペース

Pythonのファイルは、/完成プロデュース/リサイクル開始に伴って、名前空間に格納される生成されたファイル名の実行中に、ロードされた名前空間であることを秒であります
、次の名前
インポートのsys#のsysモジュール名
  X = 1#変数名X
  X == 1の場合:
    Y = 2#変数名のy
デフのfoo(x)は:#関数名fooの
  Y = 1
  デフバー():
    パス
クラスバー:#クラス名バー
  パス

1.3ローカル名前空間

通話/終了機能に加えて、一時的に/回復が発生し、関数名内で定義された関数のパラメータは、名前空間に保存されます
デフのfoo(x)は:
yが3位関数を呼び出す=ときに、コードは、関数名xを実行すると、Yは空間内の関数のローカル名に格納されています
 
負荷スペースは、名前の順番です。
内蔵のネームスペース - >グローバル名前空間 - >ローカル名前空間、および名前を見つけ、3の1つの名前がスペースから見つけられなければなりません、
次の順序を検索:
ローカル名前空間 - >グローバル名前空間 - >内蔵の名前空間。

2つのスコープ

2.1グローバルスコープとローカルスコープ

これは、2つのエリアに3つの名前空間の異なるスコープ名に応じて分割することができます。

1.グローバルスコープ:

位置グローバルネームスペース、ビルトイン名前空間名グローバルスコープに属し、削除しない限り、その範囲(内グローバル生存の名前、そうでない場合は、テキスト全体
生存の実行中部材)、グローバル有効()が任意の位置で使用することができます。

2.ローカルスコープ:

ローカル名前空間名に位置する地域に属しています。一時的な生存の範囲内の名前(関数が呼び出されたときに、一時的に関数呼び出しの終了後に、生成されます
解放された)、)関数内でのみ使用することができます(有効局所。

2.2スコープと名前検索の優先順位

グローバル名を見つけるために:その最初のグローバルスコープを探しに行く、ローカル名前空間が見つからない見つけ、ローカルスコープ内の名前を検索し、開始位置はローカルスコープです
スペースが見つからない場合は、内蔵された名前空間見つけ、最後には例外がスローされます見つけることができませんでした
デフのfoo(x)は:
  yが3位関数を呼び出す=ときに、コードは、関数名xを実行すると、Yは空間内の関数のローカル名に格納されています
  X = 100#グローバルスコープ名X
デフのfoo():
  ローカルスコープ×300#のX =名前
  ローカルで見つけること(x)は、#xを印刷
FOO()#300の結果
X = 100
デフのfoo():
  X = 300の#は関数呼び出しの名前xのローカルスコープを生成します
FOO()
印刷(x)の#は全体的な状況を見て、X、結果は100です

2.3グローバルとローカル以外の

 

ローカル(ハードタイプ)の値を変更したい場合はグローバルにグローバルニーズの名前に対応 

X = 111  

デフ)(FUNC:    

  株式会社フリーは参加X#Xステートメント名がグローバル名ではなく、新たなリサイクルの名前です。    

  X = 222  

FUNC() 

プリント(X)   

)(非局所:名(ハードタイプ)に対応する値は、外側の機能変更機能に含まれています 

X = 0 

デフ F1():    

  X = 11    

  デフ F2():        

    非ローカルのx        

    X = 22    

F2()    

印刷('X F1で:'、X)   F1()

おすすめ

転載: www.cnblogs.com/heirenxilou/p/12524298.html
おすすめ