I often find myself writing class constructors like this:
class foo: def __init__(self, arg1, arg2, arg3): self.arg1 = arg1 self.arg2 = arg2
The most Pythonic way is what you've already written. If you are happy to require named arguments, you could do this:
class foo: def __init__(self, **kwargs): vars(self).update(kwargs)