raising classes
Aahz
aahz at pythoncraft.com
Mon Aug 19 17:32:36 EDT 2002
In article <mailman.1029774509.27563.python-list at python.org>,
Tim Peters <tim.one at comcast.net> wrote:
>[Aahz]
>>
>> Before I add to the current high volume on python-dev, does anyone know
>> why the exception mechanism uses class objects rather than class
>> instances. In other words, why don't we do
>>
>> raise Exception()
>
>You can if you want to (try it!). I expect some people don't just
>because it's more typing, while others don't because instantiating an
>instance of a class is more expensive than merely using the (already
>full constructed) class object itself.
The latter is what I would have guessed. Which brings me to my real
question:
Obviously *something* must be instantiated on a per-exception basis.
What kind of object is it? There was a recent thread on python-dev that
mentioned lazy instantiation of exceptions at the C level; does that
apply to for loops? That is, with the following code, does an actual
exception object get created?
def f():
yield 1
raise StopIteration
for i in f():
print i
--
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
Project Vote Smart: http://www.vote-smart.org/
More information about the Python-list
mailing list