python 3中类内参数的类型化[duplicate]

bf1o4zei  于 2022-12-14  发布在  Python
关注(0)|答案(1)|浏览(125)

此问题在此处已有答案

How do I type hint a method with the type of the enclosing class?(7个答案)
昨天关门了。
我创建了一个类:

class Node:
    def __init__(self, name, size=None):
        self.name: str = name
        self.size: int = size
        self.children: list[Node] = []
        self.parent: Node = None

    def add_child(self, child):
        if child not in self.children:
            self.children.append(child)

我想这样打

class Node:
    def __init__(self, name: str, size: int = None):
        self.name: str = name
        self.size: int = size
        self.children: list[Node] = []
        self.parent: Node = None

    def add_child(self, child: Node):
        if child not in self.children:
            self.children.append(child)

但是这个方法def add_child(self, child: Node)给了我一个错误/警告:

"Node" is not defined

并且child仍然使用类型化类型Any。如何解决这个问题?
我使用了typing模块中的type()Type

e37o9pze

e37o9pze1#

当尝试在类定义中键入hint类示例时,需要在脚本的开头包括以下import语句:

from __future__ import annotations

相关问题