15

随着最近对 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
>>>

关于自引用结构,我可能会误解数据类的概念。

是否可以在这种情况下使用数据类装饰器 - 或者我错过了一些重要的概念?

提前致谢。

4

0 回答 0