有没有一种方法可以键入递归数据类?

时间:2019-06-13 00:56:52

标签: python python-3.6 python-dataclasses

假设您具有以下数据类

@dataclass
class Task:
    subTasks: Optional[List[Task]]

这是不可能的,因为尚未声明Task

我正在使用带有dacite + dataclasses的Python 3.6将大型字典解析为数据类。

目前,我一直在这样做:

from dataclasses import dataclass
from dacite import from_dict

@dataclass
class Task:
    subTasks: Optional[List]

    def process_sub_tasks(self) -> None:
        cls = type(self)
        if self.subTasks:
            self.subTasks = [from_dict(data_class=cls, data=d) for d in self.subTasks]
            for subtask in self.subTasks:
                subtask.process_sub_tasks()

我想知道是否可以通过某种方式键入subTasks来使它知道它也是List[Task]对象,而不是通用的List

0 个答案:

没有答案