使用言語 Python3
def vertical(aa,bb):
num = aa + bb
return num
num = 5
vertical(1,2)
print(num)
=>3
5
上のようなコードの場合、def内にあるnumはlocalな変数のため、def外になると適用されない。そのため、vertical(1,2)では3を返すが、print(num)ではglobalな変数である5を返す。
次に、def内にあるnumをglobalな変数にしてみるとどうなるかを書く。
def vertical(aa,bb):
global num
num = aa + bb
return num
num = 5
vertical(1,2)
print(num)
=>3
3
このコードを上から順にみていくと、
①まずnum = 5が代入される
②vertical(1,2)が実行され、num = 3が新たに代入され、numが返される。
③print(num)により、②で代入されたnumが返される。
こういう手順を踏むので、先ほどのコードの結果とは異なったものが返されるというわけである。