Недавно я перешел с Matlab на Numpy, и мне это нравится. Тем не менее, одна действительно замечательная вещь, которая мне понравилась в Matlab, — это возможность выполнять команды. Есть два способа сделать это:
1) завершение табуляции. Если у меня есть функция с именем foobar(...), я могу сделать 'fo', и она автоматически заполнит 'foobar'
2) завершение "кнопкой вверх" (не знаю, как это назвать). Если я недавно ввел такую команду, как 'x = linspace(0, 1, 100); А = глаз (50);' а затем я хочу быстро ввести эту же команду, чтобы я мог переоценить ее или немного изменить, затем я просто набираю «x =», затем нажимаю вверх, и она будет циклически повторять все предыдущие введенные вами команды, которые начинались с «x знак равно Это была замечательная функция в Matlab (и, если вы слышали о Julia, она сделала это еще лучше, позволив вам автоматически повторно вводить целые блоки кода, например, когда вы определяете функции в интерактивной подсказке)
Обе эти функции отсутствуют в обычной интерактивной оболочке Python. Я считаю, что автозаполнение вкладок обсуждалось ранее и, вероятно, может быть включено с помощью сценария запуска .pythonrc и некоторых модулей; однако я ничего не нашел о завершении "кнопки вверх". Python действительно имеет рудиментарную функциональность кнопки вверх, которая просто прокручивает все предыдущие команды, но вы не можете ввести начало команды и сузить диапазон прокручиваемых команд, и это имеет огромное значение.
Кто-нибудь знает способ получить эту функциональность в обычной интерактивной оболочке Python, не прибегая к каким-либо причудливым вещам, таким как ноутбуки IPython, которые требуют отдельной установки?