[Python-Dev] Builtin exit, good in interpreter, bad in code.

Sean Reifschneider jafo-python-dev at tummy.com
Mon Apr 24 03:55:53 CEST 2006


A friend of mine is learning Python, and had a problem with the exit
builtin.  I like that in the interpreter it gives useful information, but
he was writing a program in a file and tried "exit(0)", and was presented
with the non-obvious error:

   TypeError: 'str' object is not callable

What about something like:

   >>> class ExitClass:
   ...    def __repr__(self):
   ...       return('Hey, press control-D')
   ...    def __call__(self, value):
   ...       raise SyntaxError, 'You want to use sys.exit'
   ... 
   >>> exit = ExitClass()
   >>> exit
   Hey, press control-D
   >>> exit(1)
   Traceback (most recent call last):
     File "<stdin>", line 1, in ?
     File "<stdin>", line 5, in __call__
   SyntaxError: You want to use sys.exit

Jerub on #python thinks that maybe it needs to subclass the string object
instead, but in general it seems like it might be an improvement.

Thoughts?

Thanks,
Sean
-- 
 Peppermint Patty gets a DSL line in "YOU'D TELL ME IF YOU WERE IN A GERMAN
 SCHEISSE VIDEO WOULDN'T YOU, CHARLIE BROWN"
Sean Reifschneider, Member of Technical Staff <jafo at tummy.com>
tummy.com, ltd. - Linux Consulting since 1995: Ask me about High Availability



More information about the Python-Dev mailing list