Архив автора: admin

Реализация импорта в Питоне переписана на чистый Питон

Python 3.3 продолжает радовать. Сегодня в него вошли изменения от Bratt Cannon. Теперь import реализован почти весь на питоне, в библиотеке importlib. Она и раньше присутствовала — но теперь __import__ ведёт напрямую в importlib.

Казалось бы, какая разница? На самом деле всё просто:

  • Проще поддерживать и развивать. Существующий код в import.c нелегко читать и ещё сложнее понимать во всех деталях (включая в том числе и кроссплатформенность). Теперь ситуация значительно улучшится.

  • Легче изучать. Повторюсь, понимать реализацию по чтению Python/import.c (а именно там расположен почти весь код, относящийся к импорту модулей и пакетов) — нелегко. Отчасти потому, что написана на C, в то время как большинства питонщиков этот язык, к сожалению, практически не знаком. Главная же причина в том, что этот механизм эволюционировал потихоньку, счастливо избегая больших переделок — но уверенно вбирая в себя сотни мелких и средних улучшений. Проще и понятней от этого не становилось.

  • Унификация. Сложилась на самом деле парадоксальная ситуация: в то время как PEP 302, исчерпывающе описывает то, как должен работать механизм импорта — Питон этим не пользуется. То есть да, PEP 302 полностью реализован и поддерживается — но стандартный импорт из файловой системы идёт в обход этих правил. Не подумайте плохого — ничего не ломается. Но одновременное существование двух дублирующих систем — одной для импорта из файловой системы, а второй для поддержки PEP 302, — уже не очень хорошая вещь.

  • Снова вспоминаем про поддержку, развитие и изучение. Почему, например, по умолчанию sys.meta_path пустой? Отчего в sys.path_hooks есть только zipimporter? Где вообще import hooks для загрузки модулей из файловой системы? Почему Python не прописывает в модулях __loader__, хотя PEP 302 однозначно предписывает это делать?

  • Как, в конце концов, всё работает? Читатель, вы уверены что понимаете механизм во всех деталях?

Документация хороша, но она описывает далеко не все нюансы. Когда я попытался разобраться — мне пришлось потратить немало времени. Потом это вылилось в серию статей, посвящённых импорту: часть 1, часть 2, часть 3, импорт и юникод. На этом терпение закончилось и заключительные статьи серии так и не были опубликованы.

Изучение было крайне увлекательным, но меня не оставляло чувство, что процесс должен быть намного проще, ведь Питон старается избегать чрезмерно усложнённых решений.

Так и произошло. Сейчас импорт уже стал проще и понятней, это просто замечательно. В дальнейших планах — подчистка и сокращение кода на С, сведение его объёма к минимуму.

Немного о скорости. Питоновская реализация примерно на 5% медленней — что никого не беспокоит. Быть может, к версии 3.4 маятник качнётся назад, и наиболее критические части кода будут реализованы на С (как это произошло, например, с модулем io). Сейчас гораздо важнее корректность, — а скорость, и без того вполне приемлемая, вполне может подождать своего часа.

Запасайтесь поп-корном, Python 3.3 будет выпущен в конце августа. Это будет по настоящему выдающаяся версия!

Автор: Andrew Svetlov

Ипратропия бромид + Сальбутамол (Атродуал Atrodual®)

Механизм действия
 Блокирует м-холинорецепторы (ацетилхолиновые мускариновые рецепторы) и расширяет бронхи
Показание
— ХОБЛ в стадии обострения
— Тяжелая бронхообструкция
Форма выпуска
— Ипратропия бромид 0,2 мг/мл вместе с сальбутамолом 1 мг/мл; в небулах по 2,5 мл
Дозировка взрослым
— 2,5 мл в виде ингаляции, можно повторно
Дозировка детям
— 10-20 кг: 1 мл
— 20-40 кг: 2 мл

Фуросемид

Механизм действия
 Петлевой диуретик, быстрое увеличение выделения мочи
Показание
— Отек легких
— Сердечная недостаточность
Форма выпуска
— Фуросемид 10 мг/мл (1% раствор), ампулы по 2 мл
Дозировка для взрослых
— При отеке легких 20-40 мг (2-4 мл 1% р-ра) внутривенно
Дозировка для детей
— 2 мг/кг
Побочные эффекты
— При большой дозировке может снижаться артериальное давление.
— Необходима катетеризация мочевого пузыря при угнетении сознания и длительной транспортировке.
Пасхальные украшения

Пасхальные украшения

В этой статье мы продолжаем рассказывать про разные пасхальный декор. Сегодня это будут цветочные композиции и пасхальное дерево.

декор к пасхе

Читать