[Python-3000] Pre-peps on raise and except changes
Nick Coghlan
ncoghlan at gmail.com
Sun Feb 11 01:35:36 CET 2007
Guido van Rossum wrote:
> Why don't you want it to mutate the instance?
The recent repeat of the API discussion about list.sort() &
list.reversed() (mutate instance & return None) vs sorted() and
reversed() (return new instance).
I'm trying to see why mutating & returning self would be OK here, when
it's not OK for a list to do the same thing.
An alternate constructor as a class method ducks the question entirely.
Cheers,
Nick.
>
> On 2/10/07, Nick Coghlan <ncoghlan at gmail.com> wrote:
>> Collin Winter wrote:
>> > I think so. I've already got language ready for the section on using
>> > BaseException.with_traceback() in the 2->3 raise translations, and
>> > I'll work up additional language for the transition plan sometime this
>> > weekend.
>>
>> If with_traceback() is an instance method, does it mutate the existing
>> exception or create a new one?
>>
>> To avoid any confusion, perhaps it should instead be a class method
>> equivalent to the following:
>>
>> @classmethod
>> def with_traceback(*args, **kwds):
>> cls = args[0]
>> tb = args[1]
>> args = args[2:]
>> exc = cls(*args, **kwds)
>> exc.__traceback__ = tb
>> return exc
>>
>> Usage would look like:
>>
>> raise E.with_traceback(T, V)
>>
>>
>> Cheers,
>> Nick.
>>
>> --
>> Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
>> ---------------------------------------------------------------
>> http://www.boredomandlaziness.org
>>
>
>
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://www.boredomandlaziness.org
More information about the Python-3000
mailing list