Python2-2関数変数スコープ

可変スコープ

一般的に、プログラミング言語では、コード構造の観点から、変数のスコープは、ブロックレベル、関数、クラス、モジュール、パッケージなどの小レベルから大レベルまであります。ただし、Pythonにはブロックレベルのスコープはありません。つまり、ステートメントブロック、ステートメントブロック、コンテキストマネージャーなどの場合、スコープの概念はなく、通常のステートメントと同等です。

if True:            # if语句块没有作用域
    x = 1   
print(x)

def func():         # 函数有作用域
    a = 8  

print(a)
NameError: name 'a' is not defined

通常、関数内のコードは外部変数にアクセスできますが、外部コードは通常、内部変数にアクセスできません。

Pythonのスコープには、次の4つのレイヤーがあります。

  • L(ローカル)ローカルスコープ
  • クロージャ関数外の関数のE(囲み)
  • G(グローバル)グローバルスコープ

おすすめ

転載: blog.csdn.net/weixin_43955170/article/details/112771801