Pythonでは、関数や変数の定義は、それらが実際に使用されるまでに行われていればよいという原則があります。しかし、この原則から外れる場合があるため、注意が必要です。
変数の定義位置
変数の定義は、変数が実際に使用されるまでに行われていれば問題ありません。以下に例を示します。
# コード01
x = 10
print(x)
# コード02 → エラー
print(x)
x = 10
関数の定義位置
関数の定義も、関数が実際に実行されるまでに行われていれば問題ありません。以下に例を示します。
# コード03
def xxx():
print('xxx')
xxx()
# コード04 → エラー
xxx()
def xxx():
print('xxx')
関数の引数のデフォルト値
関数の引数のデフォルト値を変数で指定する場合は、例外が存在します。この場合、「関数の定義を行うまでに変数を定義する必要がある」となります。以下に例を示します。
# コード09
a = 1
def xxx(x = a):
print('x =', x)
xxx()
# コード10 → エラー
def xxx(x = a):
print('x =', x)
a = 2
xxx()
以上のように、Pythonでは関数や変数の定義の順序には注意が必要です。特に、関数の引数のディフォルト値を変数で指定する場合は、関数の定義を行う前に変数を定義する必要があります。