0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

スコープについて Python競プロメモ③

Posted at

使用言語 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が返される。

こういう手順を踏むので、先ほどのコードの結果とは異なったものが返されるというわけである。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?