Need help with syntax on inheritance.

SpreadTooThin bjobrien62 at gmail.com
Wed Oct 4 11:06:30 EDT 2006


Peter Otten wrote:
> SpreadTooThin wrote:
>
> > If you are deriving a new class from another class,
> > that you must (I assume) know the initializer of the other class.
> >
> > So in myClass
> >
> > import array
> > class myClass(arrary.array):
> >    def __init__(self, now here I need to put array's constructor
> > parameters..., then mine):
> >       array.array.__init__(self, typecode[, initializer])
> >       self.mine = mine
> >
> > So I'm confused...
> > array has a typecode parameter and an optional initiializer...
> > So could you help me with the class construction here please?
>
> Normally you would do
>
> # won't work
> class Array(array.array):
>     def __init__(self, typecode, initalizer=(), mine=None):
>         array.array.__init__(self, typecode, initializer)
>         self.mine = mine
>
> However, array.array is a bit harder to subclass:
>
> # should work
> class Array(array.array):
>     def __new__(cls, typecode, initializer=(), mine=None):
>         return array.array.__new__(cls, typecode, initializer)
>     def __init__(self, typecode, initializer=(), mine=None):
>         array.array.__init__(self, typecode, initializer)
>         self.mine = mine
>
> See if you can get away by making the array an attribute of your class
> instead.
>

Thanks.
the =() syntax indicates what?
Just slightly off topic here but if Array had a bunch of initializers
of its own,
must all the 'optional' parameters be on the right.. ie the last
parameters?


> Peter




More information about the Python-list mailing list