首页 文章

Python类型提示:自引用类型检查

提问于
浏览
0

我决定静态输入会让我的生活变得更容易在Python中,考虑到我通常在C中工作 . 我创建了一个类似的类:

class node(object):
    """
    properties, constructor, etc.
    """

    def add_outneighbor(self, neighbor: node) -> None:
        """
        do stuff
        """

Flake8告诉我 node 是一个未知的类型 add_outneighbor 's definition. Currently I'正在解决 isinstance(arg, type) 的问题,但这似乎打败了类型提示的目的 . 有一个更好的方法吗? This是我提到的资源,以获取有关类型提示的信息,但我找不到有关此自引用问题的任何讨论 .

1 回答

  • 7

    解释器告诉您节点是未知类型的原因是因为除非您使用Python 4,否则必须先定义“节点”,然后才能在注释中使用它 .

    我建议插入以下语句:从 future import annotations,它会自动将注释存储为字符串 . 那你再也不会遇到那个问题了

相关问题