2013-05-06 70 views
0

說我有:爲關鍵字參數任意數量的設置默認值

class Example(object):

def __init__(self, table = None, rows = None, cats = None, **kwargs) 
     self.table = table 
     self.rows = rows 
     self.cats = cats 

我的問題是,如何才能讓kwargs具有無的默認值,爲所有的kwargs? kwargs是一個字典,對...?

+0

您可以檢查kwargs中是否存在所需的鍵,如果沒有,則分配None。 – M456 2013-05-06 20:28:00

回答

3

這沒有任何意義。使用kwargs的原因是因爲您不確定要傳入哪些關鍵字參數。因此,未知關鍵字參數具有默認值會意味着什麼?

當你問從kwargs值通過簡單地使用字典.get()方法,如果這就是你要問什麼,你可以使用默認:

value_that_might_be_missing = kwargs.get('myvalue', 'mydefault') 

否則我真的無法想象你會怎樣想。

+0

一些上下文:我有一個類需要稍後使用一些數據......但我希望能夠稍後獲取任意數量的數據,但能夠基於它是什麼來操作它。 – 2013-05-06 20:30:44

+0

所以雖然我不知道我會得到多少未知的關鍵字參數,但我知道我希望它們都具有None的初始值。 – 2013-05-06 20:35:07

0

是的是一本字典。因此,它支持get()方法。就像使用[]一樣,但將返回None(或自定義值),而不是提高KeyError

相關問題