При попытке выполнить команду timeit
в командной строке с использованием интерфейса командной строки python я случайно поместил .function()
на внешней стороне команды, например, так:
$ python3 -m timeit '<code>'.function()
Вместо При выполнении команды timeit
мне было предложено следующее:
function>
Думая, что я вошел в реплан python, который я пытался завершить с помощью q
. Да, я знаю, quit()
- правильный способ сделать это. Вернувшись в командную строку, я заметил ошибку и исправил ее так:
$ python3 -m timeit `<code>.function()`
Я ожидал, что этот код будет выполняться правильно, но вместо этого я получил следующую ошибку:
python3:7: command not found: q
После обсуждения этого с некоторыми коллегами мне предложили проверить, какой python использовался:
$ which python3
python3 () {
q
}
Это не то, что я ожидал! Обычно результат будет /usr/local/bin/python3
. Путем проб и ошибок я смог определить, что минимальный случай, чтобы воспроизвести это:
$ python3 ()
function> q
$
Теперь, когда контекст отсутствует, у меня есть два вопроса о поведении, которое я засвидетельствовал: 1. Что именно делает python3 ()
? 2. Как мне вернуть выполнение в исходное состояние в том же окне терминала? Я знаю, что могу открыть новое окно терминала, и в этом окне существует исходное состояние.