Same energy as “Option
-h
not recognized; use--help
for the list of options”.Or more subtly, when the command uses BSD (nowadays Go) style single-dash args, so it wants
-help
and not--help
.
The era of pedantry is finally over:
Direct support for REPL-specific commands like help, exit, and quit, without the need to call them as functions.
FINALLY! This has always annoyed me. If you’re gonna go through all the trouble of identifying that I want to exit, just DO it.
It’s not really much extra effort though
They just added so e text to the
__repr__
method on theexit
callable objectThat’s much easier than figuring out if your running this interactively and trying to figure out if this is going to break stuff.
That just gave me the idea that it would be fun to inspect
exit
a little.Which led me down this path:
>>> repr(exit) 'Use exit() or Ctrl-Z plus Return to exit' >>> dir(exit) [(...), 'eof', 'name'] >>> exit.eof, exit.name ('Ctrl-Z plus Return', 'exit')
Okay, cool, the “Use exit() etc.” blurb appears because it’s the function’s
repr
, and the string is assembled from itsname
andeof
properties.Now let’s try to make our own:
>>> exit.__class__ <class '_sitebuiltins.Quitter'> >>> gtfo = exit.__class__() TypeError: Quitter.__init__() missing 2 required positional arguments: 'name' and 'eof'
Oh Python, you shouldn’t have.
>>> gtfo = exit.__class__("a big puff of smoke", "a sneaky skedaddle") >>> gtfo Use a big puff of smoke() or a sneaky skedaddle to exit
Beauty!
The dev thought “I know exactly what you meant, but I still insist you to do it my way”.