Jean-Paul Calderone wrote: > On 10 Jan 2007 14:46:54 -0800, Emin <[EMAIL PROTECTED]> wrote: >> Dear Experts, >> >> When writing large classes, I sometimes find myself needing to copy a >> lot of parameters from the argument of __init__ into self. Instead of >> having twenty lines that all basically say something like self.x = x, I >> often use __dict__ via something like: >> >> class example: >> def __init__(self,a,b,c,d,e,f,g,h,i,j,k,l,m,n): >> for name in >> ['a','b','c','d','e','f','g','h','i','j','k','l','m','n']: >> self.__dict__[name] = locals()[name] >> >> This saves a lot of code and makes it easier to see what is going on, >> but it seems like there should be a better idiom for this task. Any >> suggestions? > > I use a helper, like > > http://divmod.org/trac/browser/trunk/Epsilon/epsilon/structlike.py#L35 > If you don't want to go that far then this might give you an idea or two:
>>> class example: ... def __init__(self,a,b,c,d,e,f,g,h,i,j,k,l,m,n): ... for name in inspect.getargspec(example.__init__)[0]: ... print name ... >>> x = example(1,2,3,4,5,6,7,8,9,10,11,12,13,14) self a b c d e f g h i j k l m n >>> regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden Blog of Note: http://holdenweb.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list