Python的默认参数和关键参数有何区别?

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

慕后森
浏览 728回答 2
2回答

斯蒂芬大帝

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

江户川乱折腾

关键字参数 **kwargs 传入后可以通过 kwargs['xxx'] 获取参数值; 可变长参数 *args 传入后是一下 list;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python