Terry J. Reedy added the comment:

We try to have IDLE work the same as Python (and CPython, where relevant), 
except where differences are intentional or unavoidable.  I am trying to 
eliminate some unintentional avoidable differences in other issues.  However, 
this one is unavoidable given IDLE's basic design.  Also, Steven is correct; see
https://docs.python.org/3/library/builtins.html#module-builtins

IDLE executes user code with "exec(code, self.locals)" (run.py, l.351 in 3.5).
https://docs.python.org/3/library/functions.html#exec
says "If the globals dictionary does not contain a value for the key 
__builtins__, a reference to the dictionary of the built-in module builtins is 
inserted under that key."

(Doc issus: From the builtins doc and the Jython example, this seems 
implementation dependent. Steven, does
  >>> d = {}; exec('', d); d.keys()
  dict_keys(['__builtins__'])
have this result in Jython?)

In the IDLE shell, each statement is exec'ed separately.  With two statements, 
__builtins__ is added back before 'min' , while with one statement, it is not.  

Editor: Run Module execs the entire file at once.  I expected print(min) to 
fail either way, but it works either way.  I verified that globals().keys() 
lost '__builtins__', so I don't know how __builtins__.min is found.

I left this open to consider adding a line to
https://docs.python.org/3/library/idle.html#idle-console-differences

----------
assignee:  -> terry.reedy
components: +Documentation
stage:  -> needs patch
title: IDLE behaves differently that the standard interpreter when someone 
types `del __builtins__` -> IDLE behaves differently than python on `del 
__builtins__`
type:  -> behavior
versions: +Python 3.4, Python 3.5, Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25564>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to