exit() or sys.exit()

Tim Chase python.list at tim.thechases.com
Wed Jun 17 12:33:44 EDT 2009

Brendan wrote:
> What is the difference on exit() and sys.exit() when called in the
> main body of a script? From the command line they seem to have the
> same effect.

In Python <=2.4 you had to use sys.exit() because 
__builtins__.exit() griped:

   tchase at asgix:~$ python2.4
   Python 2.4.4 (#2, Apr 15 2008, 23:43:20)
   [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more 
   >>> type(exit)
   <type 'str'>
   >>> exit()
   Traceback (most recent call last):
     File "<stdin>", line 1, in ?
   TypeError: 'str' object is not callable

In 2.5, it's an instance of site.Quitter which is callable, 
allowing it to behave like sys.exit()  (from my observations, 
__builtins__.exit() and sys.exit() behave the same).

I tend to use sys.exit() because I've still got code running on 
machines mired at 2.4


More information about the Python-list mailing list