def __init__(self, **kwargs):
    arg_vals = {'param1': 'default1'}
arg_vals.update(kwargs)
for kw, arg in arg_vals.items():
    setattr(self, kw, arg)
Improving __init__ where args are assigned directly to members