python関数


グローバル変数


グローバル変数は、領域全体からアクセスできる変数です.

ゾーン変数


特定の関数でのみアクセスできる変数.
これにより、グローバル変数は、グローバル変数が宣言された場所でのみ置き換えられます.
ゾーン変数は特定の関数内でのみアクセスして変数を変更できますか?
答えじゃない
領域変数は正しいが、グローバル変数は特定の関数内でグローバル変数を変更することができる.
g_var = 10


def func():
    global g_var
    g_var = 20


print(f"g_var : {g_var} before") # g_var : 10 before
func()
print(f"g_var : {g_var} after ") # g_var : 20 after
このまま交換するわけにはいきませんが、
globalという文法が必要です.

オブジェクト参照転送-可変オブジェクトを転送する場合

def change_value(x, value):
    x = value
    print(f"x : {x} in change_value") # x : 20 in change_value


x = 10
change_value(x, 20)
print(f"x : {x} in main") # x : 10 in main
xは10を参照する.
パラメータxは、change value()関数を呼び出すことによって伝達される.
関数呼び出し時
x=valueコードが実行されます.
xはvalueが指す定数オブジェクトを参照します.
change value()関数呼び出しを完了するスタックフレームは、次のとおりです.
グローバル変数のxリファレンス10のみが残ります.