変数のスコープ scope of variable
変数がどの範囲で使えるかを正確に理解することは大事だ.あるモジュール(ファイル)で変数が定義されている(定義の行が実行されている)なら,そのファイル内で定義される関数ではその変数を参照できる.したがって,次の例は問題なく動く.
正常に動作する例:
def func1():
print('x=%d'%x)
x=1
func1()
ただし,関数の定義と,関数の呼び出しが別ファイルになっていると,呼び出し側で定義されdef func1():
print('x=%d'%x)
ている変数を関数の定義側で使うことはできない.つまり,以下の場合は変数が定義されていないというエラーになる.
# test_a.pyのファイルの中身
import test_b
x=1
test2b.func1()
#test_b.pyのファイルの中身
def func1():
print('x=%d'%x)