[Numpy-discussion] not inheriting from ndarray
Neal Becker
ndbecker2 at gmail.com
Tue Jul 14 08:39:39 EDT 2015
Neal Becker wrote:
> I wanted the function of an array that accumulates my results, it starts
> at
> zero size, and resizes as needed. New results are added using
>
> accumulated += new_array
>
> A simple implementation of this is here:
>
> https://gist.github.com/2ab48e25fd460990d045.git
>
> I have 2 questions:
>
> 1. Is this a reasonable approach?
>
> 2. I overloaded += to do 1) resize 2) call ndarray += operator
> Is there some way to just overload all arithmetic operators similarly all
> at
> the same time? (I don't need them for the current work, I'm just
> curious).
Well one thing, due to (what IMO is) a bug in pickle,
https://bugs.python.org/issue5370
you need to modify, this seems to work:
def __getattr__(self, name): # delegate all operations not
specifically overridden to base array
if 'arr' in self.__dict__: # this is to allow unpickle avoid
infinite recursion
return getattr (self.arr, name)
raise AttributeError(name)
More information about the NumPy-Discussion
mailing list