今回はPython入門者の方のために、「ローカル変数」と「グローバル変数」についてお話していきます。
Pythonでプログラムを組んでいくには、必須で覚えなければいけない概念になるので、ここでしっかりと覚えていきましょう。
では早速、Pythonの「変数」について見ていきましょう。
Pthonの変数について
Pythonでは、「変数」という値を格納するための概念があります。
一言に変数といっても種類があるのでそれぞれの特徴と使い方を説明していこうと思います。
ローカル変数とは
まずはローカル変数について説明していこうと思います。 ローカル変数は名前の通り、宣言した関数の中でしか使えない変数です。
つまりその関数を一度抜けてしまうと、変数の中身は保証されません。
その時だけ使いたい一時的な変数が「ローカル変数」というわけです
グローバル変数とは
次にグローバル変数についてみていきます。
どの範囲からもアクセスできる変数であり、一番自由度の高い変数なのです。
このグローバル変数について理解するには、変数のスコープというものについて知っておく必要があります。
スコープというのは、変数がアクセスできる範囲のことを言います。 変数はコードのどこに書いても、どこからでもアクセスできるというわけではありません。
記述する場所によってグローバル変数かローカル変数かのどちらかに分けられます。 例えば「関数の中で宣言」された変数か「関数の外で宣言」された変数かによって働きが変わっていきます。
グローバル変数の使い方
先ほども少しお話ししましたが、グローバル変数とはどこからでもアクセスができ、自由度の高い変数です。 さっそくサンプルコードを見ていきましょう。
# グローバル変数の宣言
temp = 'abcdefg'
# 関数の宣言
def function():
print(temp)
# 関数とprint関数の実行
function()
print(temp)
このサンプルコードの実行結果は、
# 実行結果
abcdefg
abcdefg
となり、どちらも同じになります。 このことから、どんな場所であろうとグローバル変数にはアクセスできていることがわかります。
ローカル変数の使い方
次に、ローカル変数について軽くだけおさらいしておきます。
# 関数の宣言
def lfunc():
# 関数内でローカル変数の宣言
lvar = 'abcdefg'
print(lvar)
# 実行
lfunc()
print(lvar)
# 実行結果
abcdefg
!エラー
このように関数内で宣言した変数はローカル変数として扱われるため、関数の外である9行目のprint関数では変数の値が取得できないため、エラーとなってしまいます。
まとめ
今回は、グローバル変数について、
- 変数のスコープとは?
- グローバル変数とローカル変数の違い
- グローバル変数、ローカル変数の例
- 関数の中からグローバル変数を書き換える方法
普段はあまり気にかけず、すべての変数をグローバル変数にしていた人も、もしかしたらいるかもしれません。
ですが今回紹介したように使い分けることで、より目的がはっきりとしたコードを書けるようになると思います。
もし変数について今後わからなくなった時には、ぜひまたこのページに遊びに来てください。