0

重複の可能性:
Python の「最小の驚き」: 変更可能な既定の引数

次のコードでは、出力は 6 6 7 6 ではありませんが、実際の出力は以下に示すように大きく異なります。

i=5
def fs(args=i):
 print args
 print i

i=6
fs()
fs(7)

Actual Output is 5 6 7 6
4

1 に答える 1

8

コードは、関数が呼び出されたときではなくargs=i、関数が定義されたときに実行されます。

関数を定義したとき、 の値は 5 でした。これは、後で の値を 6に変更してもi、 のデフォルト値は常に 5 であることを意味します。argsi

于 2012-11-19T10:19:45.737 に答える