bobry 29.10.2009 05:50
Python — rlcompleter: дополнение на месте
Все кто хоть чуть-чуть знаком с python, знают как удобно бывает, время от времени, проверить работоспособность чего-нибудь в интерпритаторе. Лично у меня постоянно вылетают из головы названия методов/функций итп, посему частенько приходится писать чтонибудь а ля:
И все еще достаточно терпимо, когда список, возвращаемый dir сравнительно небольшой, как выше, но когда он в два, а то и три, раза больше - найти нужный пункт становится проблемматично. На помощь, в таком случае, приходит модуль rlcompleter. Чтобы проиллюстрировать, как это работает приведу пример из официальной документации:
К слову, упомянутый выше модуль readline помимо дополнения, имеет еще одну полезную функцию - восстановление истории предыдущих сеансов работы с интерпритатором, в виде функций read_history_file и write_history_file.
Чтобы заставить интерпритатор автоматически загружать все эти вкусности делаем следующее:
создаем в домашнем каталоге файл .pystartup (вообще говоря, выбор местоположения и имени этого файла не критичен, так что файл может находиться где угодно и назывться как вам хочется)
добавляем в этот файл строчки:
устанавливаем в ~/.bashrc (.zshrc, .cshrc w\e) значение переменной PYTHONSTARTUP
1 |
|
наслаждаемся готовым результатом :)
ЗЫ: хочется заранее разочаровать пользователей Windows, модуль , используемый в этом решении, имеет только Unix реализацию.
tipit 29.10.2009 08:34 #
+ 5 -
попробуйте ipython
хочется заранее разочаровать пользователей Windows, модуль , используемый в этом решении, имеет только Unix реализацию
а это что такое тогда? =)
Питон замечательный язык. А его возможности для интроспекции просто поражают :)
Чтобы не расслаблялись. Тоже самое можно сделать и в консоли Ruby — irb с помощью библиотеки Wirble. Кроме того wirble умеет красиво подсвечивать вывод.
Для этого в файл ~/.irbrc нужно добавить строки
Для этого в файл ~/.irbrc нужно добавить строки
%w{rubygems wirble}.each do |lib|
begin
require lib
rescue LoadError => err
$stderr.puts "Couldn't load #{lib}: #{err}"
end
end
Wirble.init
Wirble.colorize