[Python-Dev] PEP 377 - allow __enter__() methods to skip the statement body
Nick Coghlan
ncoghlan at gmail.com
Sun Mar 15 21:34:09 CET 2009
Michael Foord wrote:
> Nick Coghlan wrote:
>>> Note that using exceptions for control flow can be bad for other
>>> implementations of Python. For example exceptions on the .NET framework
>>> are very expensive. (Although there are workarounds such as not really
>>> raising the exception - but they're ugly).
>>>
>>
>> Is it that exceptions are expensive, or setting up a try/except block is
>> expensive? The reason the SkipStatement idea is tenable at all (even in
>> CPython) is that try/except is fairly cheap when no exception is raised.
>>
>
> It is the raising of the exception that is expensive.
Then that isn't a huge drawback in this case - the SkipStatement
exception is only used in situations which would currently probably be
handled by raising an exception anyway (e.g. the change to
contextlib.contextmanager.__enter__() in the patch is to raise
SkipStatement where it currently raises RuntimeError).
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
More information about the Python-Dev
mailing list