Классы данных – это новая функция, представленная в 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”