Berco Beute <[EMAIL PROTECTED]> wrote: > I remember reading somewhere how to create an instance attribute for > every method argument, but although Google is my friend, I can't seem > to find it. This could likely be done way more elegant: > >========================= > class Test(object): > > def __init__(self, a, b, c, d, e, f): > self.a = a > self.b = b > self.c = c > self.d = d >========================= > > 2B
You *could* do something like this: >>> class Test(object): def __init__(self, a, b, c, d, e, f): self.update(locals()) def update(self, adict): for k in adict: if k != 'self': setattr(self, k, adict[k]) >>> c = Test(1, 2, 3, 4, 5, 6) >>> c.__dict__ {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'f': 6} >>> but to be honest, your original is much clearer as it expresses the intention without any obfuscation and as soon as you want to do anything more than simply copying all arguments you'll want to do the assignments individually anyway. -- http://mail.python.org/mailman/listinfo/python-list