随着最近对 python 数据类装饰器的介绍,编写模型类变得非常容易。
但是我不确定如何使用自引用结构/模型类的上下文 - 例如 LinkedList 的内部 ListNode/Node 模型类。
>>> from dataclasses import dataclass
>>> from typing import Type
>>>
>>> @dataclass
... class Node:
... data: int
... link: Node
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in Node
NameError: name 'Node' is not defined
>>>
>>>
>>> @dataclass
... class Node:
... data: int
... link: Type[Node] # have tried Type hinting
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in Node
NameError: name 'Node' is not defined
>>>
关于自引用结构,我可能会误解数据类的概念。
是否可以在这种情况下使用数据类装饰器 - 或者我错过了一些重要的概念?
提前致谢。