class Test(object):
def __init__(self, id, name):
self.id = id
self.name = name
def foo(d):
return Test(**d)
# this works well
d = {'id': 'aaa', 'name': 'aaa-name'}
foo(d)
# this would not work well, because of parameter variations, a external para add into dict d.
d = {'id': 'aaa', 'name': 'aaa-name', 'test1': 'test1'}
# traceback
TypeError: __init__() got an unexpected keyword argument 'test1'
是否有任何方法可以忽略dict d的参数变化?如何忽略Python中的额外关键字参数?
您通过kwargs,但你不处理它们。在初始签名中使用** kwargs或其他东西 –
“处理”额外的关键字参数意味着什么?别理他们?使用它们来设置对象的属性?还有别的吗? – mhawke
忽略额外的关键字参数。 – Wilence