0

代码会更好地解释这一点:)

def a():
    x=0
    def b(z=x):
        print("X: %d, Z: %d" % (x,z,))
    x=5
    b()

结果:

X: 5, Z: 0

这里发生了什么?

(好吧,现在我想通了)

4

1 回答 1

2

好的,来自 Python 文档的答案是:

执行函数定义时评估默认参数值。这意味着表达式在定义函数时被计算一次,并且每次调用都使用相同的“预计算”值。

很公平。

于 2011-11-21T03:49:07.740 回答