为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕后森 2019-02-25 21:27:08
在简明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呢?
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

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

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

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

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

查看完整回答
反对 回复 2019-03-04
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

关键字参数 **kwargs 传入后可以通过 kwargs['xxx'] 获取参数值;
可变长参数 *args 传入后是一下 list;

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 726 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信