• scott
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    3 days ago

    Lemme golf that

    ~ $ python
    Python 3.12.10 (main, Apr  9 2025, 18:13:11) [Clang 18.0.3 (https://android.googlesource.com/toolchain/llvm-project d8003a456 on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> class x:
    ...  def __repr__(s):
    ...   exit(0)
    ...
    >>> xit = x()
    >>> xit
    ~ $
    

    Not that hard

    • brian@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      2 days ago

      repr is generally assumed to be side effect free and cheap to run, so things like debuggers tend to show repr of things in scope, including possibly exit

      also then it behaves differently between repl and script, since repr never gets run. to do it properly it has to be a new repl keyword I imagine, but I still don’t know if I’m sold on the idea

      • scott
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 days ago

        Good points. You’re right, it does need solved at the shell level. Glad they did so.

    • wise_pancake@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      3 days ago

      The code isn’t high effort, it’s all the stuff you have to think about breaking

      But generally I don’t think anyone prints exit in most contexts

      Ps mad respect for doing that on your phone