函数默认值是否考虑Python中的参数赋值

时间:2014-07-13 11:42:49

标签: python python-2.7

我想知道这是否被认为是Python中的赋值

def func(a,b,c=10): return a+b+c

c = 10语法是否在此处为参数 c 分配10?

1 个答案:

答案 0 :(得分:1)

  

这里的c = 10语法是否为参数c赋值10?

不一定。如果函数被调用func(1,2,3),那么10不会分配给c。这是默认参数值的重点,只有在调用者没有指定的情况下才会使用它。

假设调用者没有指定值,则将默认值分配给c,其含义与指定的参数分配给ab的意义相同。

但是,这不是一个"赋值语句",所以有关于赋值语句的事实并非如此(可能是最重要的区别,尽管它并不重要)在10的这个例子中,每次都没有评估它的右侧,而每次执行时都会评估赋值语句的右侧。因此,在谈论"任务"意思"赋值语句",它不会被视为一项任务。