what is the idiom for copy lots of params into self?
Luis M. González
luismgz at gmail.com
Wed Jan 10 21:05:12 EST 2007
Emin 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?
>
> Thanks,
> -Emin
How about using variable length argumens?
class example:
def __init__(self, *args):
for i in args:
self.__dict__[i] = i
x = example('uno','dos','tres')
Luis
More information about the Python-list
mailing list