Шаг 115.
Python: тонкости программирования. Общие структуры данных Python. Записи, структуры и объекты переноса данных. Ключевые выводы

    На этом шаге мы дадим несколько рекомендаций по использованию изученных классов.

    Итак, какой же тип следует использовать для объектов данных в Python? Как вы убедились, есть целый ряд различных вариантов для реализации записей или объектов данных. Как правило, ваше решение будет зависеть от вашего сценария использования:

    У вас есть всего несколько (2-3) полей: использование обыкновенного объекта-кортежа может подойти, если порядок следования полей легко запоминается или имена полей излишни. Например, представьте точку (x, y, z) в трехмерном пространстве.

    Вам нужны неизменяемые поля: в данном случае обыкновенные кортежи, collections.namedtuple и typing.NamedTuple, дадут неплохие возможности для реализации этого типа объекта данных.

    Вам нужно устранить имена полей, чтобы избежать опечаток: вашими друзьями здесь будут collections.namedtuple и typing.NamedTuple.

    Вы не хотите усложнять: обыкновенный объект-словарь может быть хорошим вариантом из-за удобного синтаксиса, который сильно напоминает JSON.

    Вам нужен полный контроль над вашей структурой данных: самое время написать собственный класс с методами-модификаторами (сеттерами) и методами-получателями (геттерами) @property.

    Вам нужно добавить в объект поведение (методы): вам следует написать собственный класс с нуля либо путем расширения collections.namedtuple или typing.NamedTuple.

    Вам нужно плотно упаковать данные, чтобы сериализовать их для записи на жесткий диск или отправить их по сети: самое время навести справки по поводу struct.Struct, потому что этот объект представляет собой превосходный вариант использования.

    Если вы ищете безопасный вариант, который можно использовать по умолчанию, то общая рекомендация в отношении реализации простой записи, структуры или объекта данных в Python будет следующей: использовать collections.namedtuple в Python 2.x и его младшего брата, typing.NamedTuple, в Python 3.

    Соа следующего шага мы начнем рассматривать множества и мультимножества.




Предыдущий шаг Содержание Следующий шаг