2

我正在考虑**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

这样做可以吗?我觉得……奇怪,似乎不规范。

4

1 回答 1

3

看看dict构造函数在 Python 中做了什么:

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

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

于 2011-01-17T14:16:10.843 回答