変数のスコープ 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)