0

可能的重复:
Python 中的“Least Astonishment”:可变默认参数

在下面的代码中,输出应该不是 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函数时运行,而不是在调用函数时运行。

当您定义函数时,值i是 5。这意味着默认值args将始终为 5,即使您稍后将值更改i为 6。

于 2012-11-19T10:19:45.737 回答