デフォルトの引数をとるPython関数foo
があるとします。そのデフォルトはグローバル変数に設定されています。関数を呼び出す前にグローバル変数を変更すると、デフォルト引数はそのグローバル変数の元の値に設定されたままです。例えばデフォルトの引数をグローバル変数として定義する
:
x = 1
def foo(a=x):
print a
x = 2
foo()
この代わり2
の、1
印刷します。
このグローバル変数を変更してこのデフォルト引数を更新できるように、コードをどのように書くべきですか?
デフォルトの引数は、 –