Using equals operator without changing reference pointer
tjreedy at udel.edu
Fri Jan 30 05:03:45 CET 2009
Erik Max Francis wrote:
> mark.seagoe at gmail.com wrote:
>> Is there a way to lock down myInst so that it still refers to the
>> original object, and is there some special member that will allow me
>> to override the equals operator in this case? Or is that simply
>> blasphemous against everything Python holds sacred? Certainly there
>> is some keyword that I don't know about.
> No. The assignment operator with a bare name on the left hand side is
> not overridable.
So that 'name = ob' *always* binds name to ob. That is one thing one
can depend on when reading Python code.
> You can override attribute access, however, with
I presume that you have over-riden __setitem__ in addition to
__getitem__ so that myOb = 1 sets the bit. You could add a branch to
__setitem__ (or define __setslice__ in 2.x) so that myOb[:] = 0x55 does
just what you want it to -- set all bits. Being able to get/set
contiguous bits might be something you want anyway.
PS. When asking about internal details, specify version of interest, as
there have been minor changes.
More information about the Python-list