默认值参数

我们可以定义一个形参有默认值的函数:

def fn(a="x", b="y"):
    print a, b

那么我们可以有很多种方法来调用该函数

方法一:

fn()
fn("z")
fn("z", "w")

当传的实参个数少于形参,将按照从左到右的顺序传下去

方法二:

fn(a="one")    # one y
fn(b="two", a="one")    # one two
fn(a="one", b="two")    # one two

使用keyword的方法传递实参

  • 实参中的key的要与形参匹配,形参中参数名为ab,则实参中的key也要为ab,比如fn(c="three")则会报错,因为c不在ab形成的集合中

  • 实参个数可以少于形参个数,比如fn(a="one")只传一个实参;但实参个数不能多于形参个数,比如fn(a="one", b="two", c="three"),因为这样key就会与形参不一样

  • 实参的顺序没有关系,比如上面的第二行与第三行的输出是一样的

方法三:

mydict = {"a":"one", "b":"two"}
fn(**mydict)

传递一个字典dictionary。对于这个调用方法,需要注意的是

  • 字典中的key必须在形参名字的集合中;比如mydict = {"c":"three"}会报错,因为c不在ab组成的集合中

  • 字典中元素个数可以少于形参个数;比如mydict = {"a":"one"},那么形参b的便是其默认值y

Last updated

Was this helpful?