Ваш первый пакет: шаг 1
Представьте, что в недалеком будущем Вы и Ваши сотрудники напишете большое количество функций Python.
Ваша команда решает сгруппировать функции в отдельные модули, и это конечный результат упорядочивания:
#! /usr/bin/env python3
""" module: alpha """
def funA():
return "Alpha"
if __name__ == "__main__":
print("I prefer to be a module.")
alpha.py
Примечание. Мы представили все содержимое только для модуля alpha.py - предположим, что все модули выглядят одинаково (они содержат одну функцию с именем funX
, где X - первая буква имени модуля).
Ваш первый пакет: шаг 2
Внезапно кто-то замечает, что эти модули формируют свою собственную иерархию, поэтому помещать их все в плоскую структуру не будет хорошей идеей.
После некоторого обсуждения команда приходит к выводу, что модули должны быть сгруппированы. Все участники согласны с тем, что следующая древовидная структура прекрасно отражает взаимоотношения между модулями:
Давайте рассмотрим это снизу вверх:
- группа ugly содержит два модуля: psi и omega;
- группа best содержит два модуля: sigma и tau;
- группа good содержит два модуля (alpha и beta) и одну подгруппу (best);
- группа extra содержит две подгруппы (good и bad) и один модуль (iota).
Это выглядит плохо? Вовсе нет - тщательно проанализируйте структуру. Это похоже на что-то известное, не так ли?
Это похоже на структуру каталогов.