Обновить
836.17

Python *

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

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

О блоге 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.4K
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).
Читать дальше →

PyQt4 — Меню и панели инструментов

Время на прочтение5 мин
Охват и читатели19K
Главное окно
Класс QMainWindow представляет собой главное окно приложения. С его помощью можно создавать классический вид со строкой состояния, панелями инструментов и меню.

Строка состояния
Строка состояния это виджет, который используется для отображения статусной информации.
#!/usr/bin/python

import sys
from PyQt4 import QtGui

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(250, 150)
        self.setWindowTitle('statusbar')

        self.statusBar().showMessage('Ready')

app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

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

PyQt4 — Введение

Время на прочтение7 мин
Охват и читатели94K
Python
PyQt4 это тулкит для разработки GUI приложений. Он представляет из себя смесь языка программирование Пайтон (Питон) и библиотеки Qt. Qt – одна из наиболее мощных библиотек на этой планете. Если не самая мощная. Официальный сайт PyQt www.riverbankcomputing.co.uk разработан Филом Томпсоном.
PyQt4 представляет из себя набор модулей Пайтон. Она содержит более 300 классов и почти 6000 функций и методов. Это мультиплатформенный тулкит. Он работает на всех основных операционных системах, включая Unix, Windows и MacOS.
Начиная с версии PyQt4 GPL доступна для всех поддерживаемых платформ.
Читать дальше →

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

Приручение py-rrdtool

Время на прочтение4 мин
Охват и читатели13K
Как говорится в одной древней мудрости: можно вечно наблюдать три вещи: как горит огонь, как течёт вода и как рисует графики rrdtool. Этот пост как раз о последнем.
И так, что же такое rrdtool? rddtool — замечательная утилита, которая позволяет управлять данными, хранимыми в формать rrd (round-robin database). Данный формат примечателен тем, что изначально предназначен для хранения периодичной информации, причём так, что размер самой БД получается фиксированным (довольно небольшим) независимо от количества данных. При этом сохраняется возможность получать отчёты за продолжительные отрезки времени с произвольной точностью. Наибольшее распространение данная система нашла в системах мониторинга, где, как говорится, лучше один раз увидеть картинку, чем 7 раз прочитать логи. В конце статьи Вы сможете получить нечто, похожее на

пример


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

Основы Python — кратко. Часть 5. Определение функций, основы.

Время на прочтение3 мин
Охват и читатели172K
Начав писать главу про ООП, понял что совсем забыл освятить такой большой и нужный раздел Пайтона как функции. Тема это большая и обширная, потому, чтобы не сильно растягивать паузу между уроками, решил разделить ее на 2 части. Сначала расскажу основы, потом уже углубленные особенности Пайтоновского функциестроения.

Функции в Пайтоне объявляются не просто, а очень просто. Вот пример самой простой:

def empty_func():
    pass

Начинается объявление с ключевого слова def, что как не сложно догадаться является сокращением от define. После него идет имя функции. После имени в круглых скобках задается список параметров, в данном случае отсутствующих.
Читать дальше →

Отладка в Python с помощью консоли

Время на прочтение1 мин
Охват и читатели5.5K
Обычно библиотеки python хорошо документированы. Однако случается, что иногда документации не хватает, особенно если речь заходит о веб-фреймворках и о каком-нибудь параметре request с десятком-другим свойств.

Здесь на помощь может прийти обычная питоновская консоль, которая может услужливо вывалиться в нужный момент прямо посреди исполнявшегося кода веб-сервиса.
Читать дальше →

Основы Python — кратко. Часть 4. Генераторы списков

Время на прочтение3 мин
Охват и читатели225K
List comprehensions

Продолжим наш цикл уроков. Добрый день.

Генерация списков

Генерация списков (не знаю как адекватно перевести на русский list comprehensions) — яркий пример «синтаксического сахара». То есть конструкции, без которой легко можно обойтись, но с ней намного лучше :) Генераторы списков, как это не странно, предназначены для удобной обработки списков, к которой можно отнести и создание новых списков, и модификацию существующих.
Допустим, нам необходимо получить список нечетных чисел, не превышающих 25.
В принципе, только познакомившись с работой команды xrange решить эту проблему несложно.

>>> res = []
>>> for x in xrange(1, 25, 2):
...     res.append(x)
...
>>> print res 

В общем-то, полученный результат — целиком нас устраивает всем, кроме длинной записи. тут-то на помощь и придет наш «сахарок». В самом простом виде, он обычно
выглядит так:

Отчёт о EuroPython 2008

Время на прочтение2 мин
Охват и читатели1K
EuroPython — это ежегодная европейская конференция, посвящённая языку программирования Python.

В этом и прошлом годах конференция проводилась в столице Литвы, Вильнюсе. В следующем году она, вероятно, будет проводиться Бирмингеме (по традиции через каждые два года конференция переезжает).
Читать дальше →

Основы Python — кратко. Часть 3. Списки, кортежи, файлы.

Время на прочтение5 мин
Охват и читатели400K
В общем-то последняя из готовых глав. Остальные будут выходить чуть реже, поскольку еще не написаны (но я уверен что будут, хотя это зависит только от ваших пожеланий, уважаемые читатели :)

Также следует заметить что это это, видимо, последний «простой урок», дальше я постараюсь углубиться во все аспекты программирования, которые мы прошли «по верхам» и продолжить более детально.

В общем, те кому не интересно — читают следующую новость, а остальных — прошу пройти
под кат

Основы Python — кратко. Строки.

Время на прочтение4 мин
Охват и читатели260K
Поскольку число положительных отзывов превысило число отрицательных, продолжу выкладывание уроков. Те кто уже знаком с основами — можете или просто пропустить урок, или попробовать сделать задание 3 самым коротким способом :)

Для начала маленькое замечание.

Начиная с Python 2.3, всем, кто использует не-ASCII кодировку нужно добавлять указание о кодировке в самом начале программы. Для русского языка это будет в основном:
# -*- coding: cp1251 -*-

или использовать для хранения исходных текстов файлы utf-8 (что предпочтительней).

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

Строки

Существует множество способов задать строку в Пайтоне...