deriving from array.array
Alf P. Steinbach
alfps at start.no
Tue Jan 26 13:24:27 EST 2010
* Torsten Mohr:
> Hello,
>
> i try to derive a class from array.array:
>
>
> import array
>
> class Abc(array.array):
> def __init__(self, a, b):
> array.array.__init__(self, 'B')
> self.a = a
> self.b = b
>
>
> a = Abc(4, 5)
> print a
> print a.a
>
>
> I get an error for "a = Abc(4, 5)", seems the parameters are
> forwarded to array's __init__ as they are.
No, with CPython they're forwarded to __new__.
> Though i explicitly
> call __init__() for array.
That's the constructor inherited from 'object', it takes no args (except the
self arg).
> I'd like to use array and make sure it's type is always 'B'.
> I'd like to derive because i don't want to rewrite all the methods like
> __getiem__ for my class and then call array's __getitem__.
>
> How do i best derive from array.array?
<code>
import array
class ByteArray( array.array ):
def __new__( self, *args ):
return array.array.__new__( self, "B" )
def __init__( self, a, b ):
array.array.__init__( self )
self.a = a
self.b = b
a = ByteArray( 4, 5 )
print( a )
print( a.a )
</code>
Disclaimer: I'm not a Python programmer. :-)
Cheers & hth.,
- Alf
More information about the Python-list
mailing list