Найти - Пользователи
Полная версия: Особенности форматирования строк
Начало » Флейм » Особенности форматирования строк
1 2
Андрей Светлов
http://asvetlov.blogspot.com/2011/02/formatting.html
Zubchick
О_о
чудеса питонячей эквилибристики.

Андрей, из ваших статей я узнаю о питоне больше чем откуда бы ни было :)
Андрей Светлов
:)
Это - не чудеса. Это все еще стандартные, хоть и не очень широко известные методы.
Я еще и не начинал писать о серой магии Питона. Да и, честно говоря, не очень хочу смущать умы работающими, полезными, но сомнительно выглядящими приемчиками.
regall
Андрей Светлов
Я еще и не начинал писать о серой магии Питона.
Магия - это по части Руби, не надо ее в любимом Питоне =(
Андрей Светлов
Да и, честно говоря, не очень хочу смущать умы работающими, полезными, но сомнительно выглядящими приемчиками.
А вот посмотреть хотелось бы. Правда многие, когда о таких неочевидных вещах пишут обычно не упоминают, где это может использоваться или где это они сами использовали, а очень хотелось бы.
Андрей Светлов
Нуу… Великолепную статью Сереги Щетинина по питоновскому ассемблеру, наверное, все видели: http://www.developers.org.ua/lenta/articles/python-kung-fu-p1-runtime-compilation/

Извращениями славится PJE. Исходники на http://svn.eby-sarna.com Без них эффект не тот.

Addons: http://pypi.python.org/pypi/AddOns - великолепная штука, судя по описанию. И с применением вопросов нет - много куда так и просится.
Смотрим, как сделана. Оооо. Как известно, класс и его экземпляр хранят свои атрибуты в __dict__. Это - обычный питоновский dict. Кто сказал, что его ключи обязательно должны быть строками?

Contextual: http://pypi.python.org/pypi/Contextual Набивать класс внутри first level function - очень интересно. Попробуйте с первого (а хоть бы и с десятого) раза догадаться, что именно делает _let_there_be_state!

simplegeneric: http://pypi.python.org/pypi/simplegeneric Здесь просто злоупотребление вложенными функциями. В принципе, не фатально.

Crosscuts: http://svn.eby-sarna.com/Crosscuts/README.txt?rev=2602&view=markup Порвем все границы. Почему при поиске переменной нужно ограничиваться locals/globals? Пройдем по стеку и заглянем в каждый фрейм - вдруг там отыщется наша заветная штучка? Кто первый нашелся - того и тапки.

Код у всех четырех библиотек (может, за исключением Contextual) очень короткий. Но это не значит, что он прост для понимания!
ZZZ
Андрей Светлов
http://asvetlov.blogspot.com/2011/02/formatting.html
Фееричненько… Но я совершенно не представляю, куда бы мне эти новые знания применить. :-)
За новые знания о питоне, спасибо.

Андрей Светлов
Но это не значит, что он прост для понимания!
Tim Peters
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
От сюда и пляшем.
Андрей Светлов
Эээ нет. Примеры от уважаемого Phillip J Eby ломают мозг.
Я же всего лишь попробовал расширить Advanced String Formatting тем путем, который изначально был в него заложен.
И, как мне кажется, реализация расширения очень простая, и изложить ее в понятном виде - легко.
Куда применить? Да вроде тоже показал.
Подчеркиваю: это - стандартный и официальный способ расширения. Когда массово перейдут на тройку - начнут использовать его сплошь и рядом.
Ожидаю, что позволят иметь в качестве конвертера любую строку, подходящую под определения идентификатора.
Синтаксису разбора параметров это не противоречит - идем до ‘:’ или ‘}’.

И где же реализация, которую сложно объяснить?
ZZZ
Да нет же, я не к этому. В твоих примерах как раз-таки всё ясно и понятно. Это действительно интересный момент, который может много где пригодиться… Просто задумался о том, куда бы это впихнуть сейчас и не смог найти нормального применения. Может, будет более подходящая задача и тогда я буду знать, что делать.
Андрей Светлов
В твоей программе строчек нет???? :O
o7412369815963
тоже подумал - “где применить?”, а буквально вчера сделал веб-мониторинг (1 файлик в 70строк) в котором рисовал таблицы с кучей колонок, веб-шаблонизатор для этой задачи - жирно, а шаблоно-строки из статьи бы подошли…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB