Как я могу инвертировать `dataclass.astuple`?Python

Программы на Python
Anonymous
Как я могу инвертировать `dataclass.astuple`?

Сообщение Anonymous »

Я пытаюсь построить иерархию классов данныхиз кортежа, например:

Код: Выделить всё

from dataclasses import astuple, dataclass

@dataclass
class Child:
name: str

@dataclass
class Parent:
child: Child

# this is what I want
p = Parent(Child("Tim"))
print(p)

# this is what I get
t = astuple(p)
print(Parent(*t))
Однако, хотя при этом создается родительский элемент, как и ожидалось, его дочерний элемент не имеет типа Child:

Код: Выделить всё

Parent(child=Child(name='Tim'))
Parent(child=('Tim',))
Есть ли способ создать родительский и дочерний элемент из кортежа t или каким-либо другим способом?

Подробнее здесь: https://stackoverflow.com/questions/787 ... ss-astuple

Вернуться в «Python»