On Sun, Dec 27, 2020 at 02:00:00PM +1100, Chris Angelico wrote:
> This is actually the exact part that I think should *not* happen, for
> several reasons:
>
> 1) Stuff that exists interactively and doesn't exist in a script is a
> barrier to that migration. I don't think this feature justifies that
> barrier.
It will still exist in a script, you can still import it from the os
module if you care about supporting cases where site.py doesn't get run.
This is no different from `exit`:
[steve ~]$ python3.9 -c "print(exit)"
Use exit() or Ctrl-D (i.e. EOF) to exit
[steve ~]$ python3.9 -S -c "print(exit)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'exit' is not defined
Well, actually, it will be slightly different: the pseudo-builtin `exit`
is a special object created for interactive use, it's not the same as
`sys.exit`. Whereas I invisage that the interactive `clear` will be
identical (same object) as `os.clear`.
> 2) The builtins are already incredibly busy, and this, again, doesn't
> justify being one
It's not an *actual* builtin, it's just monkey-patched into the
builtins by site.py.
I don't think there is sufficient justification for this to make it a
genuine builtin like `len` or `iter`, but I think loading it into the
builtin namespace for the convenience of the user is plenty justified.
Having clear available immediately in the interactive interpreter is
certainly more useful than having the licence, credits and copyright
notice, and yet there they are. Probably the three least used builtins
ever.
> 3) Beginners already have to learn about importing (eg "from math
> import sin") and this is just one more importable.
As far as I can tell, every language that supports a clear/cls command,
from old BASIC to modern shells, makes it available immediately. You
don't have to adjust the PATH in bash to get access to clear, it just
works.
Think of this as the companion to print. If you think about Python as an
interactive interpreter, its weird to have print, help, quit available
but not clear. Its a fairly fundamental interactive command.
> > So that's the easy part: just agree with me and import it in site.py,
> > wherever it happens to come from. *wink*
>
> This is python-ideas! We don't "just agree" here, we argue! Even if we
> don't have to!
I disagree!
*wink*
--
Steve
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/XBXNLWGXCTSM5BQCNZQNU5DFXVI7L4TK/
Code of Conduct: http://python.org/psf/codeofconduct/