Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Класс данных Python:лучший способ хранения данных

Класс данных Python — это обычный класс Python, имеющий тег @dataclass. декоратор. Он специально создан для хранения данных. Начиная с версии Python 3.7, Python предлагает классы данных через встроенный модуль с именем dataclass. . Есть несколько преимуществ по сравнению с обычными классами Python, которые мы рассмотрим в этой статье. Мы также рассмотрим пример кода и несколько распространенных операций, которые вы, возможно, захотите выполнить с классами данных.

Содержание

Преимущество использования классов данных

Почему вы должны использовать класс данных вместо обычного класса Python? Во-первых, давайте рассмотрим некоторые преимущества, которые может предложить класс данных Python.

Требуется минимальный объем кода

@dataclass декоратор добавляет в класс множество функциональных возможностей, не добавляя никакого видимого кода. Это позволяет вашему классу данных быть очень компактным, но при этом предлагать множество полезных функций. Все, что вам нужно сделать, это определить поля для хранения ваших данных. Вам не нужно определять какие-либо функции.

Сравнение

Два класса данных Python можно сравнить с == потому что так называемый dunder-метод __eq__ реализуется автоматически. В общем, мы можем сравнить любой объект Python, реализующий этот специальный метод, с другими объектами того же типа.

Печать класса данных

Точно так же, поскольку __repr__ реализован, вы можете распечатать классы данных и получить их хорошее представление. Это особенно полезно для отладки.

Для классов данных требуются подсказки типа

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

Пример класса данных Python

Вот пример класса данных в действии:

01

Значения по умолчанию

Класс данных может иметь значения по умолчанию. Присвоить значения по умолчанию так же просто, как присвоить значение переменной. Например, чтобы наш класс Card имел значение по умолчанию Королева червей, мы можем сделать следующее:

10 

Преобразование класса данных в JSON

Распространенным вариантом использования является преобразование вашего хорошо структурированного класса данных в JSON. Например, если вы хотите экспортировать данные в базу данных или отправить их в браузер. Плохая новость:нет встроенного способа конвертировать класс данных в JSON.

Хорошая новость заключается в том, что существует пакет Python под названием dataclasses-json, который упрощает задачу. Однако для этого требуется дополнительный декоратор. Вам нужно будет установить пакет с помощью команды pip install или чего-то вроде Pipenv, желательно в виртуальной среде. Например:

28

Вот пример того, как вы можете использовать пакет:

32
40

Другой метод заключается в использовании наследования Python и наследовании от класса JSONEncoder для создания собственного пользовательского кодировщика. Преимущество здесь в том, что вам не нужно устанавливать внешний пакет. Вы можете узнать, как это сделать, в этой записи блога.

Продолжайте учиться

  • Пакет Python attrs содержит расширенную версию собственного класса данных Python.
  • Официальная документация на Python.org
  • Как вернуть несколько значений в Python

Python

  1. Типы данных Python
  2. Преобразование типов Python и приведение типов
  3. Операторы Python
  4. Пользовательские исключения Python
  5. Объектно-ориентированное программирование Python
  6. Наследование Питона
  7. Как консолидация центров обработки данных меняет способ хранения данных
  8. type() и isinstance() в Python с примерами
  9. Java — Структуры данных
  10. Абстракция данных в C++