2012-12-05 71 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