ここでは、Pythonにおける関数における変数の取り扱い方法について解説しています。
この記事の対象
変数とは
関数における変数にはルールがあります。Local変数とGlobal変数と使い分ける必要があります。関数内で利用した変数は関数の外では使用できません。
変数についてはこちらを参照してください。
Local変数とは
Local変数とは関数内だけで有効な変数のことを指します。
Local変数を用いた使用例
def test():
math = 80
return math
print("Math=",test())
上記のプログラムは、関数内の変数を関数外で出力しているものです。関数内で用いている変数は全てLocal変数と定義されます。
結果
Math=80
Global変数とは
関数の外で利用する変数をGlobal変数と言います。変数の外で共通で利用できます。
Global変数を用いた使用例1
math = 80
def test():
math = 70
test()
print("math=",math)
上記のプログラムは関数内を呼び出してmathを出力するものとなっています。関数内の70という値を呼び出すつもりでいた場合は80が優先されるという事になります。
結果
Math=80
Global変数を用いた使用例2
math = 80
def test():
global math
math = 70
test()
print("math=",math)
Global変数で80と指定した値を関数内で書き換えて、その値を出力するプログラムです。関数内で「global 変数名」と記述して変数を扱うことで関数内でGlobal変数を取り扱えます。
結果
math=70
まとめ
- ローカル変数とグローバル変数で同じ名前の変数がある場合、関数内ではローカル変数が優先されます。
- ローカル変数とグローバル変数で同じ名前の変数を関数内で変更することはできません。変更する場合は、グローバル変数を関数内で明示的に参照して変更する必要があります。
- 関数内でグローバル変数を参照する場合、
global
キーワードを使用して宣言する必要があります。宣言しない場合、関数内でグローバル変数を参照しようとすると、ローカル変数として扱われます。