ipython: оператор exit() не работает должным образом

Я запускаю скрипт в ipython (1.2.1), и мне нужно остановить его, если не выполнено определенное условие. Я попытался использовать оператор exit(), но он не работает должным образом.

Возьмите для примера следующий скрипт, который я назвал test.py:

if(True):
    print('Error')
    exit()
print('Still here!')

Когда я запускаю его, используя python test.py, Я получил:

$python test.py
Error

И тогда выполнение прекращается, как и ожидалось.

Но если я запускаю его из ipython, используя run -i test.pyтогда я получаю:

In [1]: run -i test.py
Error
Still here!

И, наконец, выполнение ipython прекращается. Проблема заключается в том, что в этом случае второй оператор печати все еще выполняется, в то время как выполнение сценария должно быть прекращено, как только встретится оператор exit().

Почему это происходит и как я могу получить желаемый результат? (Я использую Python 2.7.6)

1 ответ

Решение

exit() один предназначен для REPL, на самом деле не предназначен для использования сценариями.

Попробуйте использовать sys.exit(0) после тебя import sys, конечно

Другие вопросы по тегам