Классы данных – это новая функция, представленная в Python 3.7. Эта функция направлена на уменьшение кода котельной SUCS AS __init __ ()
и __eq () __
Методы в пользовательских классах Python. Используя Dataclasses
Модульные декораторы и функции, можно создать краткие классы Python. Давайте просмотрим использование функции классов данных с примером.
Класс сотрудников может быть признан кратко таким же, как показано ниже с классами данных декоратора.
from dataclasses import dataclass, field @dataclass class Employee: id: int first_name: str last_name: str email: str base_pay: float tax_rate: float = field(default=0.01, init=False) hobbies: list = field(default_factory=list()) def calculate_pay(self): net_pay = self.base_pay - (self.base_pay * self.tax_rate) return net_pay emp1 = Employee(1, 'John', 'Doe', 'john.doe@example.com', 10000, ['Fishing', 'Soccer']) print(emp1) #Employee(id=1, first_name='John', last_name='Doe', email='john.doe@example.com', base_pay=10000, tax_rate=0.01, hobbies=['Fishing', 'Soccer']) print(emp1.calculate_pay()) #9900.0
@dataclass
Декоратор выше генерируетinit
,репре
иEQ
Методы по умолчанию.@dataclass
Генератор без каких-либо параметров, таких как заявленные выше, эквивалентно следующему декларации:
@dataclass(init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False)
- Если
Заказать
Параметр устанавливается на true, он будет генерировать методы BoaterPlateлейтена
,гету
,Ле
игей
. Кроме того, истинное значение, поставляемое дляunsafe_hash
Параметр будет генерироватьхеш
метод. - Dataclasses используют
Набрав
Модуль для определения типа данных объявленных полей классов. Однако, если кто-то желает не указать типы данных поля, они могут использоватьпечатать. Любой
для всех их полей в классе. - По умолчанию все поля класса включены в сгенерированные методы. Но это может быть настраивается с использованием полевой декларации. Например,
tal_rate
Поле в примере исключается изinit
метод.
tax_rate: float = field(default=0.01, init=False)
- Кроме того, мы можем использовать
Default_factory
Параметр для инициализации комплексных типов данных, таких как список. - Модуль Dataclasses имеет несколько удобных функций. Например,
dataclasses.fields
Функция предоставляет список полей в форме кортежа. Такжеdataclasses.asdict
Возвращает словарное представление прилагаемого объекта.
Dataclasses является одной из мощных функций, введенных в недавних версиях Python. Вот ссылка Чтобы узнать больше о его возможностях, чтобы вы могли начать использовать эту функцию в ваших проектах.
Оригинал: “https://dev.to/dev0928/what-are-data-classes-in-python-1lo0”