Обновить
592.06

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Сила и красота декораторов

Время на прочтение5 мин
Охват и читатели84K
Одним из самых сложных для понимания и осознания элементов языка является декоратор, хотя по сути это очень простая вещь, доступная для понимания даже начинающему программисту. Новых Эверестов я не открываю, а лишь предлагаю краткий обзор возможностей и несколько типичных примеров использования. Этакий короткий экскурс в метапрограммирование на питоне.

Upd 1: изменил несколько категоричное утверждение о несходстве паттерна Декоратор и одноимённой языковой конструкции на более мягкое.

Читать дальше →

Python 3. Финальная версия языка.

Время на прочтение1 мин
Охват и читатели866
Полный список изменений можно посмотреть на официальном сайте. Для краткого ознакомления можно посмотреть на OpenNews. Скачать можно тут

Консольные хитрости Питон: история команд + автодополнение

Время на прочтение3 мин
Охват и читатели20K
Если вы разрабатываете программы на Питоне, то, уверен, вы хорошо знакомы с работой с ним в интерактивном режиме. Это самый простой и удобный способ проверить пришедшую в голову идею, запустить библиотечную функцию, пошагово прогнать какой-то алгоритм и т.п. без создания лишних мусорных файлов. Вобщем питоновская консоль — очень мощная и удобная вещь. У меня постоянно напрашивается сравнение с юникс-шеллом в языке. Если бы не две ложки дегтя в этой бочке меда: команду каждый раз приходится набирать заново, вместо того, чтобы просто нажать стрелку вверх и подправить команду, а также приходится писать много лишнего, что только добавляет опечаток и необходимости повторного набора. Вобщем я хочу как в баше: история + автодополнение.
Я удивлен почему это еще не сделано по умолчанию. Кстати, очень может быть, что это уже реализовано в вашей системе, и вам это совершенно неактуально — тогда можете совершенно смело пропустить эту статью. Возможно это пригодится кому-то другому. На попавшихся мне Macos, Freebsd, Debian и Fedora этого не было.

К счастью, это легко исправить.

Задача решена. Но хорош ли код?

Время на прочтение1 мин
Охват и читатели1.1K
Я преподаю веб-технологии в ВолгГТУ.
См ранее: (Структура курса, Дизайн, HTML, Все лекции).

Изучаем html+css+пишем лабораторные с применением LAMP.
Я не настаиваю на использовании PHP, хотя и считаю его одним из наиболее распространенных и востребованных средств разработки.

Мой студент, Кирилл Киндюк, выразил желание 3 ЛР написать на Python. Поскольку ни одного выраженного недостатка у этого языка нет (ну разве что кроме сложностей с бесплатными хостингами), я разрешил.
Читать дальше →

P4X: удобство E4X в Python

Время на прочтение1 мин
Охват и читатели792
Когда я в первый раз увидел E4X (ECMAScript for XML), я, признаться, сразу в него влюбился и сильно расстроился, что для Python нет какой-либо библиотеки, эмулирующей подобный синтаксис. Но тут вот недавно случайно наткнулся на замечательнейшую вещь — P4X.
Читать дальше →

CorePy: программирование на ассемблере в Python

Время на прочтение1 мин
Охват и читатели5.9K
CorePy является библиотекой для разработки на уровне ассемблера для процессоров x86, Cell BE и PowerPC. Простой API позволяет разрабатывать сложные высокопроизводительные приложения, использующие особенности процессора, включая многоядерность и потоковые расширения, такие как SSE, VMX и SPU, обычно недоступные из языков высокого уровня.

Основанный на передовой среде выполнения, CorePy позволяет разработчикам писать и выполнять низкоуровневые приложения непосредственно в коммандной строке или встраивать в Python приложения. За счет сокращения времени разработки низкоуровневых приложений CorePy значительно уменьшает существующий барьер при разработке низкоуровневых приложений.

CorePy является инструментом общего назначения, который можно применять при разработке широкого спектра приложений, включая разработку игр, мультимедийных систем, научных и высокопроизводительных приложений а также встраиваемых приложений. Эта библиотека использовалась для оптимизации приложений под процессоры x86, систем на PowerPC 970 и Cell BE и регулярно являлась более производительнее компилируемых языков для вычислительных задач (как обычное кодирование на asm :))

Один комментарий пользователя после нескольких часов работы с CorePy подытожил мнение большинства людей:

«CorePy опять сделал программирование на ассемблере интересным занятием!» (Alex Breuer)

CorePy был разработан Крисом Мюллером (Chris Mueller), Эндрю Фридли (Andrew Friedley) и Беном Мартином (Ben Martin). Значительный вклад внес Эндрю Ламсдейн (Andrew Lumsdaine) из Open Systems Lab университета Индианы.

CorePy это open source проект, доступный по лицензии BSD.

Python плагин для IntelliJ IDEA

Время на прочтение1 мин
Охват и читатели20K
С неделю назад прочитал приятную новость про «размораживание» разработки Python плагина для IDEA. Памятуя про позитивные чувства, которые вызвало общение с IDEA 6 версии в роли Java-IDE, решил попробовать этот плагин, благо новая сборка уже доступна для загрузки и регулярно обновляется.

В общем, смею вам доложить — впечатления положительные. Очень рекомендую попробовать всем, так или иначе связанным с Python-разработкой.
Читать дальше →

Python 3. Соображения.

Время на прочтение1 мин
Охват и читатели3K
Вот пайтон и становится нормальным зрелым языком.
  • избавились от большинства мусора в стандартной библиотеке
  • перестали дифференцировать классы на new-style и old-style
  • перебороли путаницу между юникодом и не-юникодом
  • прилизали синтаксис, в том числе, в отрасли исключений
  • причесали перегружаемые операторы
  • со своей перегрузкой операторов, множественным наследованием, метаклассами и еще какими-то крутыми фичами пайтон — довольно мощный язык. По выразительности, я б сказал, на уровне С++.
А ведь я уж подумывал перейти на руби. Теперь не буду, когда 3.0 не за горами. Однако есть и то, что мне не нравится в Python, даже в третьем:
  • куча мусора, особенно в top-level scope. Многое стоило б рассовать по пакетам да по классам
  • со своей перегрузкой операторов, множественным наследованием, метаклассами и еще какими-то странными фичами пайтон — довольно сложный язык. По запутанности, я б сказал, на уровне C++
  • отсутствет встроенная xslt-библиотека. В библиотеке валяется все вплоть до работы со звуком и даже готовый вебсервер целиком, но не xslt
  • и теперь интересно, когда Джанго подружится с пайтон 3.0.
Ссылки по теме:

Компоновка — начало начал

Время на прочтение5 мин
Охват и читатели15K
В этой статье я расскажу о компоновке элементов интерфейса в PyGTK. Мы будем использовать дизайнер интерфейсов Glade и сделаем первое кросплатформенное приложение на PyGTK.
Читать дальше →

О блоге PyGTK

Время на прочтение2 мин
Охват и читатели5.2K
С удивлением обнаружил, что на хабре вообще ничего нет о таком замечательном кросплатформенном GUI фреймворке, как PyGTK, хотя статьи по Питону бывают регулярно. Ну что ж, исправим это недоразумение :-)

Чем же так хорош PyGTK и о чём я собираюсь писать в этом блоге ?

Консервация объектов в Python

Время на прочтение2 мин
Охват и читатели46K
В определенный момент любому Питон-программисту понадобится запаковать какой-то объект и спрятать его до лучших времен. Скажем, в config-файл. Или передать через сокет. Как это сделать? Разумеется, можно написать небольшой класс, который будет генерировать и парсить XML-код (кстати, следующая статья как раз будет об этом), но это — слишком большая морока.

Нет! Наш выбор — Pickle!
Но что это?

Пишем модуль расширения для Питона на C

Время на прочтение9 мин
Охват и читатели28K
OMFG! — может воскликнуть читатель. Зачем писать что-то на С когда есть Python, и будет во многом прав. Однако, к счастьюсожалению наш зелёный друг не всесилен.
Итак...

«Python 3 Patterns & Idioms». Новая книга Брюса Эккеля.

Время на прочтение1 мин
Охват и читатели3.7K
Брюс Эккель, автор бэст-сэллеров «Thinkin in Java» и «Thinking in C++», выпустил новую книгу «Python 3 Patterns & Idioms».
Книга доступна в форматах html и Windows Help.
Распространяется по лицензии Creative Commons Attribution-Share Alike 3.0.
Линк

Ближайшие события

Ultimate benchmark пяти с половиной способов проверить наличие атрибута объекта в Python

Время на прочтение24 мин
Охват и читатели6K
Вот тут подымался вопрос о том, как определить, есть ли у объекта атрибут и как это сделать максимально быстро, однако достаточно глубоко тема исследована не была.

Читать дальше →

Интервально-ассоциативный массив

Время на прочтение2 мин
Охват и читатели4.9K
Замечательная вещь — ассоциативный массив. Самые разные задачи решаются с его помощью легко, приятно и быстро. А как быть когда значение должно принадлежать не одному ключу, а быть «размазанным» на некоторый интервал?
Представьте, что вам нужно сделать программу для составления расписания дежурства менеджеров интернет-магазина. Работа с ним должна была максимально простой, примерно так:
# легко назначить
>>> timetable['08:00' : '12:00'] = 'Иванов'
>>> timetable['12:00' : '16:00'] = 'Петров'

# как узнать кто дежурил в 13:51 ?
>>> print timetable['13:51']
Петров

# легко просмотреть поэлементо полный список
>>> for interval, person in timetable.items(): print interval, person
('08:00', '12:00') Иванов
('12:00', '16:00') Петров

# ...или одной строкой
>>> print timetable
{['08:00', '12:00'] => 'Иванов', ['12:00', '16:00'] => 'Петров'}


Дальше - больше!

Expert Python Programming

Время на прочтение2 мин
Охват и читатели6.3K
Expert Python Programming Совсем недавно (24.09.08) Tarek Ziadé анонсировал публикацию своей замечательной книги (IMHO).

 Для кого написана


 В первую очередь она предназначена для людей, обладающих опытом программирования на языке Python, и желающих повысить свои навыки.

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

Из книги вы узнаете какие использовать IDE, DVCS, фреймворки тестирования, технику оптимизации; как выпускать и поддерживать разработанные приложения; как документировать код, используя reStructuredText и Sphynx; как распространять с помощью setuptools и других инструментов (PasteScript, zc.buildout, builbots); как использовать систему issue/bag трекинга Trac.

Ссылки


* Детальная информация о книге
* Подробный обзор Мишеля Симонато (Michele Simionato)
* Блог автора
* Chapter 10, Documenting Your Project. [PDF 3MB]

Далее немного информации о каждой главе

Win32 GUI Automation при помощи pywinauto

Время на прочтение1 мин
Охват и читатели10K
По роду своей предыдущей работы (QA) пришлось познакомиться с чудесным языком Python и, в частности, с модулем автоматизации pywinauto. PyWinAuto чудесен при автоматизации тестирования gui приложений и просто автоматизации рутинных gui процессов.
Данный пост расскажет и покажет как использовать модуль pywinauto для автоматизации gui операций.
Читать дальше →

"Складываем" хеши в Python ("синтаксический сахар")

Время на прочтение2 мин
Охват и читатели5.2K
Понятно, что собственно сложения ассоциативных массивов (они же хеши, dict-ы и т.п. в разных языках) не существует, т.к. совершенно неочевидно, что оно должно давать. Но иногда удобно иметь простую легкочитаемую операцию, которая бы легко и просто объединяла хеши. Особенно это удобно когда есть ряд хешей и вам нужно оттуда взять несколько ключей с разным приоритетом. Если нет значения в первом, то проверяем второй, если нет и там, то третий, и т.п.
У вас есть 4 хеша global_config, local_config, db_row, user_info
Чуть ниже хабраката я покажу как жуткую конструкцию из 4 строк
values = global_config.copy()
values.update(local_config)
values.update(db_row)
values.update(user_info)
Записать в одну
values = global_config + local_config + db_row + user_info


Читать дальше →

PyQt4 — Сигналы и события

Время на прочтение3 мин
Охват и читатели31K
События
События это важная часть GUI программирования. События генерируются пользователями или же системой. Когда мы вызываем метод exec() приложение запускает основной цикл. Он получаем события и отправляет их объектам. Trolltech представляет уникальный механизм сигналов и слотов.
Читать дальше →

PyQt4 — Управление расположением виджетов

Время на прочтение6 мин
Охват и читатели34K
Важной частью программирования является управление расположением элементов. Управление расположением это то, как мы размещаем виджеты на форме. Тут есть два пути: использование абсолютного позиционирования (absolute positioning) или же использование классов расположения (layout classes).
Читать дальше →

Вклад авторов