one-time initialization of class members

James Turk james.p.turk at
Thu Jun 14 00:08:14 CEST 2007


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.

More information about the Python-list mailing list