Рубрики
Без рубрики

Каковы классы данных в Python?

Классы данных – это новая функция, представленная в Python 3.7. Эта функция направлена на снижение кода BoaterPlate … Помечено Python, начинающим.

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