Модули. Шаблоны python3.10. Что дальше?
Синтаксис — семантика — прагматика — практика. Нельзя объять необъятного.
Модули
Как работает import
В частности, importer и finder (sys.meta_path)
Есть реализация на Python, можно почитать
$PYTHONPATH и sys.path
Модуль — это
Любой .py
Любой .so
Пакет — каталог с файлом __init__.py
Пакеты
Структура:
пакет/
__init__.py
(возможно) ещё что-то .py
- …
(возможно) подпакет/
__init__.py
(возможно) ещё что-то .py
- …
(возможно) подподпакет/
- …
(возможно) подпакет/
- …
Правила:
import пакет — только __init__.py
from пакет import что-то
from пакет import *, если в __init__ есть __all__ — имена из __all__
- …
Дополнительно
Пакет — это программа, if __name__ == "__main__"
python -m пакет
Cборники (namespace packages)
Стандартные пакеты (не успеем, потому что шаблоны!)
Обзор (в этот раз не успеем, потому что шаблоны!)
- Показать pydoc, zipfile и http.server …
Долг относительно Python3.10: структурные шаблоны
- Три вида: константы, переменные и конструкторы
TODO
PyPi
Тоже можем не успеть, показать хотя бы объём и pip install
And finally
Python zen и antigravity.
Д/З
Прощёлкать учебник по шабдлнам
- Доделать как можно больше Д/З (два последних задания обязательны для «отл»)