** kwargs是__init__中非配置数据的不错选择吗?

时间:2011-01-17 14:12:11

标签: python constructor kwargs

我正在考虑以一种不寻常的方式使用**kwargs:作为数据提供者而不是重载替换工具。这样,所有关键字参数都应该是一种类型,例如特定形式的元组,而不是其他方式。例如:

class SomeClass(object):
    '''All **kwargs should be in ("string", 1, True) form'''
    def __init__(self, some_param, **kwargs):
        self.param = some_param
        for arg in kwargs.itervalues():
            if not isinstance(arg[0], str):
            ...

        self.some_dict = kwargs

这样做可以吗?我觉得......很奇怪,这似乎很不合时宜。

1 个答案:

答案 0 :(得分:3)

了解dict构造函数在Python中的作用:

>>> dict(one=1, two=2, three=3)
{'three': 3, 'two': 2, 'one': 1}

也是关键字参数的“创造性”使用。如果这适用于标准类型,并且在您的应用程序中有意义,请选择它。

相关问题