Сообщить об ошибке.

Функция astuple() модуля dataclasses в Python

Преобразование класса данных в кортеж значений

Синтаксис:

import dataclasses

dataclasses.astuple(instance, *, tuple_factory=tuple)

Параметры:

  • instance -экземпляр класса данных,
  • dict_factory=tuple - фабричная функция.

Возвращаемое значение:

Описание:

Функция astuple() модуля dataclasses преобразует экземпляр класса данных instance в кортеж, с помощью фабричной функции tuple_factory.

Каждый класс данных преобразуется в кортеж значений своего поля. В классе данных, словари, списки и кортежи рекурсируются.

Если экземпляр instance не является экземпляром класса данных, то вызывается ошибка TypeError.

Пример преобразования типа данных в словарь:

from dataclasses import dataclass, field

@dataclass
class Point:
     x: int
     y: int

@dataclass
class ListPoint:
     mylist: list = field(default=Point)

>>> p = Point(10, 20)
>>> p
# Point(x=10, y=20)
>>> assert astuple(p) == (10, 20)

>>> listpoint = ListPoint([Point(0, 0), Point(10, 4)])
>>> listpoint
# ListPoint(mylist=[Point(x=0, y=0), Point(x=10, y=4)])
>>> assert astuple(listpoint) == ([(0, 0), (10, 4)],)