This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author serhiy.storchaka
Recipients pitrou, serhiy.storchaka
Date 2015-08-21.22:02:47
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1440194570.97.0.676736000835.issue24912@psf.upfronthosting.co.za>
In-reply-to
Content
The type of non-heap types can be changed in 3.5. This means that the type of cached immutable objects such as small ints, empty or 1-character strings, etc can be changed.

>>> class I(int):
...     __slots__ = ()
...     def __repr__(self):
...         return 'Answer to The Ultimate Question of Life, the Universe, and Everything'
...     def __add__(self, other):
...         return self * other
... 
>>> (42).__class__ = I
>>> ord('*')
Answer to The Ultimate Question of Life, the Universe, and Everything
>>> x = 42; x + 2
84
>>> class S(str):
...     __slots__ = ()
...     def __len__(self):
...         return 123
... 
>>> 'a'.__class__ = S
>>> i = 1; len('abc'[:i])
123
History
Date User Action Args
2015-08-21 22:02:51serhiy.storchakasetrecipients: + serhiy.storchaka, pitrou
2015-08-21 22:02:50serhiy.storchakasetmessageid: <1440194570.97.0.676736000835.issue24912@psf.upfronthosting.co.za>
2015-08-21 22:02:50serhiy.storchakalinkissue24912 messages
2015-08-21 22:02:47serhiy.storchakacreate