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)],)