达福的功能价值

时间:2017-11-18 10:11:31

标签: python function default

对于以下计划:

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

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

1 个答案:

答案 0 :(得分:0)

定义函数时设置b的值。如果您希望在调用该函数时设置它,您必须自己在函数中执行以下操作:

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