On 10/1/2014 10:47 AM, Steven D'Aprano wrote:

Inside the interactive interpreter, I can restart the interpreter with four
keystrokes:

- Ctrl-D
- UP-ARROW
- ENTER

Ctrl-D exits Python and returns me to the shell, UP-ARROW fetches the
previous command ("python"), and ENTER runs that command. On Windows, I
*think* you have to type Ctrl-Z ENTER instead of Ctrl-D, so that will be
five keystrokes.

For the console interpreter, this is still true even in 3.5.0a0
>>> ^D
  File "<stdin>", line 1
    ♦
    ^
SyntaxError: invalid syntax

Idle now quits on ^D on all systems. ^Z (unlike other control chars) is rejected with an immediate error beep.

Either way, restart is a single click if one have the console or Idle interpreter icon pinned on the task bar.

Even this is unnecessary with Idle as it has a Restart Shell command on the Shell menu (hotkey ^F6). (This is automatically invoked when running an edited file (F5)).


Some problems with restarting are unwinding the call stack, undoing what has been done, and doing something else so as to not run into the same problem. We can view every raise -- except pair as a partial restart of some sort. A minimal startup script something like the following allows a nearly global restart that addresses all three problems listed above.

from appmain import main, cleanup, RestartError
restart = False
while True:
  try:
    main(restart)
  except RestartError as err:
    cleanup()
    restart = err
    continue

The main and cleanup functions, switching on the restart arg, and possibly the class RestartError depend on the app.

--
Terry Jan Reedy


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to