Hacker News new | past | comments | ask | show | jobs | submit login

I agree with that estimate, I think it was really the idea of Python to be less than "good" by design.

I mean one doesn't need more than:

    >>> exit
    Use exit() or Ctrl-D (i.e. EOF) to exit
to see. They have that special handling, but they still don't want to let you out, because... IMO, they just want to be annoying.

When a solution could be something like:

    Note: exit() is needed in scripts. In this prompt Ctrl-D (i.e. EOF) can also be used.
    Exiting.



There has been discussion of this change a few times, e.g. https://bugs.python.org/issue44603

I generally agree with your overall sentiment, but I think it's important to note that the behavior is _not_ special handling; it's just the normal `repr` behavior at the REPL, where `exit` is an object like any other, and `repr(exit)` is that message.


Whoever types exit in REPL will never care what "repr(exit)" does.

Python has a lot excuses about the need to remain "consistent" but the reality isn't so:

    >>> x = open( "/tmp/whatever123", "w" )
    >>> close( x )
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'close' is not defined. Did you mean: 'cosh'?
    ...    
    >>> x.close()
    >>>
    >>> x = "tttt"
    >>> x.len()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>    
    ...
    >>> len( x )
    4


I think this is to be consistent that exit is not a statement but a function. This was done with print. 3.0 was an ergonomic fix for cpython developers and language consistency fixes (also redoing the Unicode implementation).


Yeah, that message is a pet peeve of mine. Like, you know what I'm trying to do.


It sort of doesn't! It's just doing exactly the same thing it would do with any other identifier: it's printing its `repr`. Try `repr(exit)`!


More to the point, try `[len,exit,repr]`. Consider what would happen if `exit.__repr__()` did terminate the program.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: