※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#03:非ローカル変数
このチャプターでは、非ローカル変数について学習しましょう。
- 内部関数からみたとき、外側の関数のローカル変数のことを「非ローカル変数」という
- つまり次のコードで、say 関数からみた、say_hello 関数で用意されている変数 msg を非ローカル変数という
def say_hello():
msg = "hello"
def say():
pass
say_hello()
- 内部関数からは、非ローカル変数の示す値を取得することができる
- つまり、次のコードの 5 行目ではエラーにならない
def say_hello():
msg = "hello"
def say():
print(msg)
say_hello()
- 次のコードを実行すると、エラーが発生する
def func0():
def func1():
x = 1
return
def func2():
return x
return func2()
print(func0())
- func2 関数のなかから、func1 関数のローカル変数を使うことはできず、結果として、func2 関数のなかから使うことのできる変数 x はないため、エラーになる
- 変数のスコープを考えるときに大切なことは、インデントの深さではなく、どの関数のなかにあるかといった包含関係
ログインすると採点できます
コードの実行