我想知道这是否被认为是Python中的赋值
def func(a,b,c=10): return a+b+c
c = 10
语法是否在此处为参数 c 分配10?
答案 0 :(得分:1)
这里的
c = 10
语法是否为参数c赋值10?
不一定。如果函数被调用func(1,2,3)
,那么10不会分配给c
。这是默认参数值的重点,只有在调用者没有指定的情况下才会使用它。
假设调用者没有指定值,则将默认值分配给c
,其含义与指定的参数分配给a
和b
的意义相同。
但是,这不是一个"赋值语句",所以有关于赋值语句的事实并非如此(可能是最重要的区别,尽管它并不重要)在10
的这个例子中,每次都没有评估它的右侧,而每次执行时都会评估赋值语句的右侧。因此,在谈论"任务"意思"赋值语句",它不会被视为一项任务。