On Jun 13, 8:00 pm, Larry Bates <[EMAIL PROTECTED]> wrote:
> James Turk wrote:
> > Hi,
>
> > I have a situation where I have some class members that should only be
> > done once.  Essentially my problem looks like this:
>
> > class Base(object):
> >     dataset = None
>
> >     def __init__(self, param):
> >         if type(self).dataset is None:
> >             # code to load dataset based on param, expensive
>
> > class ChildClass1(Base):
> >     def __init__(self):
> >         Base.__init__(self, data_params)
>
> > class AnotherChildClass(Base):
> >     def __init__(self):
> >         Base.__init__(self, other_data_params)
>
> > This seems to work, initialization is only done at the first creation
> > of either class.  I was just wondering if this is the 'pythonic' way
> > to do this as my solution does feel a bit hackish.
>
> I could be missing something but dataset is shared among all the class
> instances.  If you reset it based on param it will be reset every time
> you create a new instance of the Base class with a different param.  Is
> that really what you want to do?  If so just use:
>
> class Base(object):
>     dataset = None
>
>     def __init__(self, param):
>         if self.dataset is None:
>             # code to load dataset based on param, expensive
>
> -Larry

I'm sorry, I somehow omitted the fact that the dataset does indeed
need to vary based on the child class, actually this is the main
difference between child classes.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to