在使用类型暗示时,如何编写作为链表中节点的Python类
在Python3.7中,我有一个dataclass,它是链表中的一个节点在使用类型暗示时,如何编写作为链表中节点的Python类,python,Python,在Python3.7中,我有一个dataclass,它是链表中的一个节点 from dataclasses import dataclass @dataclass class Node(object): right: Node left: Node 问题是我在Pycharm中得到一个检查错误: 未解析的引用“节点” 运行时会出现此错误 NameError:未定义名称“节点” dataclass要求我声明类型,因此如何解决此问题?解决此问题 通过添加以下导入,稍后将解析类型提示
from dataclasses import dataclass
@dataclass
class Node(object):
right: Node
left: Node
问题是我在Pycharm中得到一个检查错误:
未解析的引用“节点”
运行时会出现此错误
NameError:未定义名称“节点”
dataclass要求我声明类型,因此如何解决此问题?解决此问题
通过添加以下导入,稍后将解析类型提示
from __future__ import annotations
解决这个问题
通过添加以下导入,稍后将解析类型提示
from __future__ import annotations
我只想指出,只有python 3.7+PEP 563声明“就像在PEP 484和PEP 526中一样,需要强调的是python仍然是一种动态类型化的语言,并且作者不希望强制执行类型提示,即使按照惯例也是如此。”但这与,您可以看到,数据类需要类型暗示才能工作。因此,在我看来,这是一个答案是mandatory的情况,我只想指出,这只适用于python 3.7+PEP 563状态“就像在PEP 484和PEP 526中一样,应该强调的是python将仍然是一种动态类型化的语言,并且作者不希望强制执行类型提示,即使按照惯例也是如此。”但与此相反,您可以看到数据类需要类型暗示才能工作。所以,在我看来,答案的重要性是强制性的