函数的默认值

Dafault value of function

对于以下程序:

x=12
def f1(a,b=x):
    print(a,b)
x=15
f1(4)

为什么输出是 4 12 而不是 4 15? 该函数不会在调用之前获取 x 的最新值吗?但是只会在定义之前获取值吗?

b的值是在定义函数的时候设置的。如果你想在调用函数时设置它,你必须在函数中自己做,比如:

def f1(a, b = None):
    if b is None:
        b = x
    print(a, b)