Pythonの名前空間

名前空間

Pythonインタプリタが実行を開始した後、それはちょうどそれが変数に遭遇するたびに、メモリ内のスペースを開く名前と記録された値との変数の関係を置くが、関数定義に直面したとき、通訳されます関数名は、それが時間だけにロードされた関数で、何よりもの始まりです。、インタプリタは懸念していない関数は、変数や関数の内部ロジックにとして、存在することを示す、メモリに読み込まれ、関数が呼び出されたときにのみ訪問の時間は、インタプリタは関数内で宣言された変数に応じて内部変数のためのスペースを開きます。関数が完了すると、占有スペースの関数としての内部変数の機能が完成し空になります。

def fun():   
    a = 10   
    print(a)
fun()
print(a)    # a不存在了已经..

私たちは、名前から収納スペースと値との間の関係の名前を与える:名前空間私たちは、このスペースに格納されているメモリ内の変数です。

名前空間カテゴリー:

  1. グローバル名前空間 - > PY私たちが直接文書では、関数の外で宣言変数はグローバル名前空間に属しています

  2. ローカル名前空間は - >関数内で宣言した変数は、ローカル名前空間に保持されます

  3. 内蔵のネームスペース - >ストレージPythonインタプリタは、これらのある構築された名前空間をint型、名前、リスト、タプル、STRを提供してくれます  

ロード順:

  1. ビルトイン名前空間
  2. グローバル名前空間

  3. ローカル名前空間(関数が実行された場合)

オーダーの値:

  1. ローカル名前空間

  2. グローバル名前空間

  3. ビルトイン名前空間

a = 10
def func():  
    a = 20   
    print(a)

func()  # 20

スコープ:スコープはグローバルスコープとローカルスコープにビューの範囲の発効に応じて、スコープであります

   グローバルスコープ:任意の場所にファイル全体では、組み込み名前空間とグローバル名前空間を含んでいる(⾏実行することで上から下に続く)を使用することができます。

   ローカルスコープ:内部関数を使用してもよいです。

以下のためのドメイン名前空間を使用します:

  1. グローバルスコープ:グローバルネームスペース+内蔵の名前空間
  2. ローカルスコープ:ローカル名前空間

私たちは、ドメインのコンテンツで使用するグローバルグローバル()関数で見ることができ、それは地元の人々によってドメイン情報とローカル変数量の使用および機能(とみなすことができます)

a = 10
def func():   
    a = 40   
    b = 20   
    print("哈哈")   
    print(a, b)        
    print(globals())    # 打印全局作用域中的内容   
    print(locals())     # 打印当前作用域中的内容
func()

IMG

  • 名前空間のカテゴリ

    命名空间分类:
    1. 全局命名空间--> 我们直接在py文件中, 函数外声明的变量都属于全局命名空间
    2. 局部命名空间--> 在函数中声明的变量会放在局部命名空间
    3. 内置命名空间--> 存放python解释器为我们提供的名字, list, tuple, str, int这些都是内置命名空间 
  • ロード順

    #内置空间>全局空间>局部空间
  • オーダーの値

    #局部空间>全局空间>内置空间
  • スコープ

    #全局作用域:
      内置空间+全局空间
    #局部作用域
      局部空间

おすすめ

転載: www.cnblogs.com/luckinlee/p/11620074.html