UserDict question

Guyon Morée gumuz at looze.net
Tue Nov 4 16:32:40 CET 2003


Thanks, this is exactly what I wanted to know.



"Alex Martelli" <aleax at aleax.it> wrote in message
news:ASOpb.411624$R32.13653684 at news2.tin.it...
> Guyon Morée wrote:
>
> > Hi all,
> >
> > I am using the UserDict baseclass and I want to add a __init__ to it to
> > set up some initial values.
> >
> > my question is: do I have to run UserDict.UserDict.__init__ before doing
> > anything else?
>
> The normal way to proceed is indeed to call your base class's __init__
> before proceeding, yes.
>
> > as in:
> >
> > class myClass(UserDict.UserDict):
> >   def __init__(self):
> >     UserDict.UserDict.__init__ (self)
> >     self.value = 1
>
> If you don't want to support myClass being called with arguments
> in order to initialize its instances to non-empty dictionaries,
> this may indeed be sufficient.
>
>
> > it seems so easy, but somehow i don't really grasp it... what do i have
to
> > do?
>
> If you also want to support optional arguments, you'll code something
like:
>
> class myClass(UserDict.UserDict):
>     def __init__(self, adict=None, **kwargs):
>         UserDict.UserDict.__init__ (self, adict, **kwargs)
>         self.value = 1
>
> in order to accept such optional args and pass them on to UserDict
> for initialization.  But, if you want to myClass to be always
> called without arguments (all its instances start out empty) then
> the code you wrote above is indeed correct.
>
>
> Alex
>






More information about the Python-list mailing list