2012-12-05 55 views
0

在python中,是否可以定义可覆盖的可选默认值,如果您定义了该值,那么它不会使用默认值,但是如果您不这样做,它会怎样?可选的默认值

例如:

def hats(a= 'large', b= 'baseball', c= 'five dollars'): 
    #method stuff goes here 

我知道我可以定义a,然后bc将默认,但可能我有点只定义c,并有ab使用默认值?

一样,我可以调用方法hats(NULL, something, something else)

回答

3

可不知何故,我只是定义c和有A和B使用的默认

肯定的:

hats(c = 'something') 

将使用默认值为ab

+0

我们通常不把周围的空间中的'='为关键字参数,对不对? –

+0

嗯,我知道PEP8不推荐它,但我觉得它更具可读性,所以这就是我所做的。 – unutbu

0

这就是默认参数的要点。如果你传递了某些东西,你使用了什么。如果您不这样做,则使用默认值。

1

当然。您可以参考paramater名字,当你调用函数

def hats(a= 'large', b= 'baseball', c= 'five dollars'): 
     print a,b,c 

hats(b = "football") 
>>> large football five dollars 

如果您传递参数,但没有指定的名称,参数将按顺序传递,例如:

hats("big","tennis") 
>>> big tennis five dollars 

以上导致只更改前两个参数(a和b)并将c保留为默认值。

最后一点你不必通过在所有任何PARAMATERS:

hats() 
>>> large baseball five dollars