| Специальная функция редактирования |
|
Последняя тема, касающаяся ввода-вывода, которую мы затронем, -это специальная функция edit. (Подробнее об специальных функциях мы поговорим в следующем разделе.) Взаимодействие пользователя с оболочкой, основанное на вводе строк, имеет огромное, но ограниченное значение. Так как это утверждение выглядит неоднозначным, попробуем развернуть его. Возможность ввода команд по одной строке за раз очень удобна. Вы вводите команду, а оболочка выполняет ее, причем иногда приходится ждать некоторое время, пока команда будет выполнена, а после этого вы вводите следующую команду. В такой цикличности работы нет ничего плохого. В действительности такой способ взаимодействия достаточно эффективен. Но иногда возникает необходимость ввести сразу целый блок строк. Было бы неплохо иметь возможность использовать для этого предпочитаемый текстовый редактор, хотя аналогичную возможность предоставляет поддержка readline в IPython. Мы уже знаем, как использовать текстовый редактор для создания модулей на языке Python, но это не совсем то, что мы имеем в виду. Мы подразумеваем некоторый компромисс между строчно-ориентированным способом ввода и способом ввода в текстовом редакторе, который обеспечивает возможность передавать командной оболочке целые блоки строк с командами. Если можно сказать, что добавление поддержки возможности работы с блоками строк совсем нелишне, это значит, что строчно-ориентированный интерфейс имеет некоторые ограничения. Т. е. можно сказать, что строчно-ориентированный интерфейс исключительно удобен, и в то же время имеет некоторые ограничения. Специальная функция edit как раз и представляет собой упомянутый выше компромисс между строчно-ориентированным способом ввода в оболочке Python и способом ввода с привлечением текстового редактора. Преимущества такого компромисса состоят в том, что вы получаете в свои руки мощные возможности обоих способов редактирования. В вашем распоряжении имеются все преимущества вашего любимого текстового редактора. Вы легко можете редактировать блоки программного кода и изменять строки в пределах циклов, методов или функций. Плюс к этому вы не лишаетесь простоты и гибкости непосредственного взаимодействия с оболочкой. Комбинирование этих двух подходов еще больше усиливает их положительные стороны. Вы получаете возможность управлять своим рабочим окружением непосредственно из оболочки, вы можете приостанавливать работу, редактировать и выполнять программный код из текстового редактора. При возобновлении работы в оболочке вам будут доступны все изменения, выполненные в текстовом редакторе.
Set as favorite
Bookmark
Email This
Hits: 153 Комментарии (0)RSS feed CommentsНаписать комментарий |