Hacker News new | ask | show | jobs
by anuraggoel 6229 days ago
http://docs.python.org/library/constants.html#exit

In CPython, exit is actually an object of type site.Quitter (the actual class is implementation dependent). site.Quitter overrides the __repr__ special method (which is called by the interpreter on any expression typed in the shell to print the result). site.Quitter also overrides the __call__ special method, so when an object of type site.Quitter is called, the overridden __call__ method invokes system exit.

   >>> exit_class = type(exit) #gets a reference to the class
   >>> my_exit = exit_class('bye') #the arg is used to print the message
   >>> my_exit
   Use bye() or Ctrl-D (i.e. EOF) to exit
   >>> my_exit()
   <python shell exits>
Minor inconsistency: typing "bye()" doesn't work so technically the message is incorrect. But I suppose they don't want you to be hacking exit() in the first place.