찾다

 >  Q&A  >  본문

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呢?


高洛峰高洛峰2958일 전616

모든 응답(1)나는 대답할 것이다

  • 三叔

    三叔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对应了第二个参数。


    회신하다
    0
  • 취소회신하다