python函数带参数的奇怪行为

Nav*_*een 0 python

可能重复:
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
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 7

代码args=i定义函数时运行,而不是在调用函数时运行.

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