Rom*_*ode 25 python type-hinting recursive-datastructures python-dataclasses
我想用 Python 编写数据类定义,但无法在声明中引用同一类。
我主要想要实现的是这个嵌套结构的类型,如下图所示:
@dataclass
class Category:
title: str
children: [Category] # I can't refer to a "Category"
tree = Category(title='title 1', children=[
Category('title 11', children=[]),
Category('title 12', children=[])
])
Run Code Online (Sandbox Code Playgroud)
rv.*_*tch 31
您可以将类名包装在字符串中以便前向声明注释:
from dataclasses import dataclass
from typing import List
@dataclass
class Category:
title: str
children: List['Category']
Run Code Online (Sandbox Code Playgroud)
您可以包含__future__导入,以便默认情况下对所有注释进行前向声明,如下所示。在这种情况下,您还可以消除typing导入并使用Python 3.7及更高版本中的新样式注释。
from __future__ import annotations
from dataclasses import dataclass
@dataclass
class Category:
title: str
children: list[Category]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7088 次 |
| 最近记录: |