Python Glossary English

Python 3.7+dataclassesфункция

dataclasses.astuple

конвертация

Рекурсивно превращает экземпляр dataclass в кортеж значений полей.

Синтаксис

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

Кортеж теряет имена, поэтому код, который его распаковывает, ломается молча, стоит переставить или добавить поле в классе — для сериализации и хранения надёжнее asdict. Как и asdict, функция рекурсивная и копирует значения через deepcopy, так что вложенный датакласс станет вложенным кортежем, а не ссылкой на исходный объект. Уместно там, где нужен именно короткий позиционный набор: распаковка, ключ сортировки, передача в функцию через *.

Примеры

import dataclasses
@dataclasses.dataclass
class P:
    x: int
    y: int
print(dataclasses.astuple(P(1, 2)))   # → (1, 2)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности