OO conventions
Fredrik Lundh
fredrik at pythonware.com
Mon Feb 6 05:36:41 EST 2006
Nicola Musatti wrote:
> > def factory(info):
> > k = Klass()
> > data = get_initial_data(info)
> > k.set_data(data)
> > return k
> >
> > to:
> >
> > def factory(info):
> > data = get_initial_data(info)
> > return Klass(data)
> >
> > What would be the value of doing the initialization in a separate
> > method, rather than the constructor?
>
> I didn't express my intent clearly. I agree that in general your second
> example is to be preferred to the first one. In fact the only reason I
> could think of using the first scheme is when the second would lead to
> Klass's __init__ method having a large number of parameters.
>
> What is important to me is to keep your get_initial_data() function
> outside Klass if it's task is non trivial, e.g. it has to interact with
> the OS or a DB.
why ?
</F>
More information about the Python-list
mailing list