Pythonにおけるスコープの相互作用
外部(グローバル)変数と内部(ローカル)変数が 同じ名前を持つ場合があります:
num = 1
def func():
num = 2
print(num)
ここで重要なのは、ローカル変数numは
グローバル変数と同じ名前であっても、Pythonにとっては
別の変数であるということです。
これは、関数内部でグローバル変数numが
上書きされるのではなく、元の値を保持することを意味します。
関数funcを呼び出すと、コンソールには
ローカル変数numの値だけが表示され、
printを通じてグローバル変数の値が表示されます:
func() # 2を出力します
print(num) # 1を出力します
次のコードを実行した結果はどうなりますか:
num = 10
def func():
num = 5
return num
func()
print(num)
次のコードを実行した結果はどうなりますか:
num = 3
def func():
num = 4
return num
num = func()
print(num)
次のコードを実行した結果はどうなりますか:
num = 1
def func():
num = 2
return 1
num = func()
print(num)
次のコードを実行した結果はどうなりますか:
num1 = 1
def func():
num2 = 2
func()
print(num1)
次のコードを実行した結果はどうなりますか:
num1 = 1
def func():
num2 = 2
func()
print(num2)
次のコードを実行した結果はどうなりますか:
num1 = 1
def func():
num2 = 2
func()
num2 = 3
print(num2)
次のコードを実行した結果はどうなりますか:
num1 = 1
num2 = 2
def func():
num2 = 3
func()
print(num2)
次のコードを実行した結果はどうなりますか:
num1 = 1
def func():
num1 = 2
print(num1)