Python的默认参数和关键参数有何区别?
高洛峰
高洛峰 2016-11-08 13:24:07
0
1
609

在简明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呢?


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(1)
三叔

这里如果1行改为 message = 3,也能通过编译,但这样更改之后的程序变成什么意思了?

意思是默认打印三次。在你不指定times的值时。

这和上面那段代码有什么区别吗?为什么第一段代码的 message = 3不会输出3次hello,而第二段代码的a可以输出a = 3呢?

没啥区别。message根据变量名就可以得知是一个消息,当然你改成a也可以,在这里我们看见你调用了say('Hello'),那么Hello对应的就是第一个参数。say('World', 5)其中的5对应了第二个参数。


Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template