我正在考虑以一种不寻常的方式使用**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
这样做可以吗?我觉得……很奇怪,似乎不合规范。
最佳答案
看看 Python 中的 dict
构造函数做了什么:
>>> dict(one=1, two=2, three=3)
{'three': 3, 'two': 2, 'one': 1}
也是关键字参数的“创造性”使用。如果这适用于标准类型,并且在您的应用程序中有意义,那就去做吧。
关于python - 对于 __init__ 中的非配置数据来说 **kwargs 是一个不错的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714115/