Модули: создание, использование стандартных и подключение внешних; вопросы разработки: IDE, деплоймент
Долги за позапрошлый и прошлый раз
Диспетчер контекстов
Модули и пакеты
Организация модуля
- Поиск модуля: Кеш → finder → loader;
finder по умолчанию: sys.path
__import__()
- Выполнение кода при загрузке модуля и при запуске его
- Любой файл на Python — модуль
__name__ == "__main__"
.pyc и .pyo
Пакеты: __init__.py
Подпакеты, __all__ для указания пакетов при импорте *
относительный import (имя модуля: .*name)
В/В
Типизированные файлы: модуль struct.html
Сериализация: json.html и pickle.html
методы .dump() и .load()
pickle умеет объекты!
json умеет не все hashable объекты в индексах
Индексированны доступ (БД): anydbm.html
dict-интерфейс
Спецфайлы: zipfile.html, json.html, configparser.html, …
Надстройки над стандартными структурами данных
Бесконечные (.stop() или другое частичное вычисление)
.i*()-аналоги и некоторые другие манипуляции последовательностями
- Комбинаторика
deque — быстрая стеко-очередь
defaultdict — словарь со значением по умолчанию
OrderedDict — словарь с постоянным порядком ключей
Counter — словарь для подсчёта всего
Куча (heapq.html): «The interesting property of a heap is that a[0] is always its smallest element»
weakref.html: Слабые ссылки
Разное
inspect.html: анализ кода
dis.html: «дизассемблер» байт-кода
«Массивы» и проблемы представления: array.html
Если уж массивы, то NumPy и вообще SciPy
BTW, numpy-массивы поддерживают Ellipsys
Прикладные модули
SimpleHttpServer с примером
Сеть, разбор html/xml, вообще разное в стандартной библиотеке
- …
GUI
pyGTK (примеры: /usr/share/doc/python-module-pygtk-examples-2.24.0/)
Tk
…
SQL
Firebird: fdb
Разработка
unittest.thml и другие
- Пример работы как HTTP-сервера
IDE
Деплоймент
…
Finally
import this
import antigravity
Д/З
Прочитать
Про модули в учебнике
Про всё в в документации (хотя бы названия ), как минимум стоит посмотреть то, что было на занятии
Задачи и упражнения
- Выбрать IDE и научиться им пользоваться
По возможности доделать домашние задания