Форум сайта python.su
14
Офлайн
0
О_о
чудеса питонячей эквилибристики.
Андрей, из ваших статей я узнаю о питоне больше чем откуда бы ни было :)
Офлайн
14
:)
Это - не чудеса. Это все еще стандартные, хоть и не очень широко известные методы.
Я еще и не начинал писать о серой магии Питона. Да и, честно говоря, не очень хочу смущать умы работающими, полезными, но сомнительно выглядящими приемчиками.
Офлайн
3
Андрей СветловМагия - это по части Руби, не надо ее в любимом Питоне =(
Я еще и не начинал писать о серой магии Питона.
Андрей СветловА вот посмотреть хотелось бы. Правда многие, когда о таких неочевидных вещах пишут обычно не упоминают, где это может использоваться или где это они сами использовали, а очень хотелось бы.
Да и, честно говоря, не очень хочу смущать умы работающими, полезными, но сомнительно выглядящими приемчиками.
Офлайн
14
Нуу… Великолепную статью Сереги Щетинина по питоновскому ассемблеру, наверное, все видели: 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) очень короткий. Но это не значит, что он прост для понимания!
Офлайн
26
Андрей СветловФееричненько… Но я совершенно не представляю, куда бы мне эти новые знания применить. :-)
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.
Офлайн
14
Эээ нет. Примеры от уважаемого Phillip J Eby ломают мозг.
Я же всего лишь попробовал расширить Advanced String Formatting тем путем, который изначально был в него заложен.
И, как мне кажется, реализация расширения очень простая, и изложить ее в понятном виде - легко.
Куда применить? Да вроде тоже показал.
Подчеркиваю: это - стандартный и официальный способ расширения. Когда массово перейдут на тройку - начнут использовать его сплошь и рядом.
Ожидаю, что позволят иметь в качестве конвертера любую строку, подходящую под определения идентификатора.
Синтаксису разбора параметров это не противоречит - идем до ‘:’ или ‘}’.
И где же реализация, которую сложно объяснить?
Офлайн
26
Да нет же, я не к этому. В твоих примерах как раз-таки всё ясно и понятно. Это действительно интересный момент, который может много где пригодиться… Просто задумался о том, куда бы это впихнуть сейчас и не смог найти нормального применения. Может, будет более подходящая задача и тогда я буду знать, что делать.
Офлайн
14
В твоей программе строчек нет???? :O
Офлайн
32
тоже подумал - “где применить?”, а буквально вчера сделал веб-мониторинг (1 файлик в 70строк) в котором рисовал таблицы с кучей колонок, веб-шаблонизатор для этой задачи - жирно, а шаблоно-строки из статьи бы подошли…
Отредактировано (Фев. 23, 2011 12:13:17)
Офлайн