为任意数量的关键字参数设置默认值

时间:2013-05-06 20:25:12

标签: python python-2.7

说我有:

class Example(object):

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

我的问题是,对于所有的kwargs,我如何让kwargs的默认值为None? kwargs是一个词典,对吧......?

2 个答案:

答案 0 :(得分:3)

这没有任何意义。使用kwargs的原因是因为您不确定要传递哪些关键字参数。那么,对于未知关键字参数,具有默认值意味着什么?

当您通过简单地使用字典kwargs方法询问.get()的值时,您可以使用默认值,如果这就是您所要求的:

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

否则我真的无法想象你想要什么。

答案 1 :(得分:0)

是的是字典。因此,它支持get()方法。就像使用[]一样,但会返回None(或自定义值),而不是提升KeyError