I see patterns like
def __init__(self, x, y, z):
...
self.x = x
self.y = y
self.z = z
...
quite frequently, often with
My 0.02$. It is very close to Joran Beasley answer, but more elegant:
def __init__(self, a, b, c, d, e, f):
vars(self).update((k, v) for k, v in locals().items() if v is not self)
Additionally, Mike Müller's answer (the best one to my taste) can be reduced with this technique:
def auto_init(ns):
self = ns.pop('self')
vars(self).update(ns)
And the just call auto_init(locals()) from your __init__