在简明Python教程中,对于默认参数值:
def say(message, times = 1): print message * times say('Hello') say('World', 5)
这里如果1行改为 message = 3,也能通过编译,但这样更改之后的程序变成什么意思了?
关键参数值:
def func(a = 3, b=5): print 'a is', a, 'and b is', b func() func(3, 7)
这和上面那段代码有什么区别吗?为什么第一段代码的 message = 3不会输出3次hello,而第二段代码的a可以输出a = 3呢?
三叔2016-11-08 13:24:19
这里如果1行改为 message = 3,也能通过编译,但这样更改之后的程序变成什么意思了?
意思是默认打印三次。在你不指定times的值时。
这和上面那段代码有什么区别吗?为什么第一段代码的 message = 3不会输出3次hello,而第二段代码的a可以输出a = 3呢?
没啥区别。message根据变量名就可以得知是一个消息,当然你改成a也可以,在这里我们看见你调用了say('Hello'),那么Hello对应的就是第一个参数。say('World', 5)其中的5对应了第二个参数。