Я думаю об использовании **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
Это нормально? Я чувствую ... странно, это кажется неканоничным.