downcasting problem
Tim Chase
python.list at tim.thechases.com
Mon Oct 25 20:15:05 EDT 2010
On 10/25/2010 12:56 PM, John Nagle wrote:
> On 10/25/2010 7:38 AM, Tim Chase wrote:
>> While a dirty hack for which I'd tend to smack anybody who used it...you
>> *can* assign to instance.__class__
>
> That's an implementation detail of CPython. May not work in
> IronPython, Unladen Swallow, PyPy, or Shed Skin.
Curious by your claim, could you confirm this someplace in the
docs? From my reading of [1]'s "If x is an instance of a
new-style class, then type(x) is typically the same as
x.__class__ (although this is not guaranteed - a new-style class
instance is permitted to override the value returned for
x.__class__)" is that this can be overridden (the definition of
"overridden" however may mean different things to different
people) and [2] refers to "__class__ assignment works only if
both classes have the same __slots__" (that seems pretty clear
that __class__ assignment is permissible)
-tkc
[1]
http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes
[2]
http://docs.python.org/reference/datamodel.html#__slots__
More information about the Python-list
mailing list