19/03/08 11:24:52.69 enrIbZX0.net
>>606
i = 10
def num(arg=i):
print(arg)
i = 7
num()
この場合は、def を定義するときにarg= でarg のデフォルト値をセットする。
この時の i は 10だろ。 まだ下の行は実行されていないんだから。
i = 10
def num(arg=None):
arg == i
print(arg)
i = 7
num()
この時のnum内の実行文は実行されたときに動くんだから、i=7 がセットされた値を参照する事になる。
関数のデフォルト値は関数を定義したときに決定される。 関数内の実行文は実行時に決定される。