On 9/20/06, Thomas Heller <theller@python.net> wrote:
Brett Cannon schrieb:
> On 9/20/06, Thomas Heller <theller@python.net> wrote:
>>
>> Is it an oversight that exception instances do no longer support
>> slicing in Python 2.5?
>>
>> This code works in 2.4, but no longer in 2.5:
>>
>> try:
>> open("", "r")
>> except IOError, details:
>> print details[:]
>
>
> Technically, yes. There is no entry in the sq_slice field for the
> PySequenceMethods struct. Although you can get to the list of arguments by
> going through the 'args' attribute if you need a quick fix.
Well, Nick Coghlan pointed out in private email:
>> According to PEP 352 it should have at most been deprecated along with the
>> rest of Exception.__getitem__:
>>
>> "This also means providing a __getitem__ method is unneeded for exceptions and
>> thus will be deprecated as well."
Right, the deprecation is not scheduled until Python 2.9 for __getitem__ so it was a regression problem (was never a test for it before PEP 352 was written). The fix is now in so your code should work again from a trunk checkout. I will backport when the freeze is raised.
-Brett