On Jun 13, 6:54 pm, Steven Bethard <[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.
>
> What should happen with code like::
>
> ChildClass1('foo')
> ChildClass1('bar')
>
> The 'param' is different, but 'dataset' should only get set the first time?
>
> STeVe
ChildClass doesn't take the parameter in it's constructor, it supplies
it for the BaseClass. Every ChildClass of the same type should use
the same dataset.
--
http://mail.python.org/mailman/listinfo/python-list