how to get bytes from bytearray without copying
Cameron Simpson
cs at zip.com.au
Mon Mar 3 17:02:07 EST 2014
On 03Mar2014 09:15, Juraj Ivančić <juraj.ivancic at gmail.com> wrote:
> On 3.3.2014. 1:44, Cameron Simpson wrote:
> >>ValueError: cannot hash writable memoryview object
> >
> >Have you considered subclassing memoryview and giving the subclass
> >a __hash__ method?
>
> I have, and then, when I failed to subclass it, I considered doing
> aggregation, and make it behave byte-like. But how to implement the
> overridden __hash__ method? It will still require at least *some*
> redundant copying. And there is the slicing thing... the whole idea
> started to feel like I was performing tonsillectomy through the anal
> cavity.
Write a wrapper class instead and use:
def __hash__(self):
return id(self)
Simple and fast. Unless you need slices with the same content to
hash the same (eg storing them as dict keys, or in sets).
And alternative would be a simple hash of the first few bytes in
whatever slice you had.
Cheers,
--
Cameron Simpson <cs at zip.com.au>
Why is it so hard for people to simply leave people alone? But, the answer
comes to me: they are idiots and in a perfect world, I would be permitted to
kill them all. - Julie Rhodes <jk.rhodes at asacomp.com>
More information about the Python-list
mailing list