我决定静态输入会让我的生活变得更容易在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 回答
解释器告诉您节点是未知类型的原因是因为除非您使用Python 4,否则必须先定义“节点”,然后才能在注释中使用它 .
我建议插入以下语句:从 future import annotations,它会自动将注释存储为字符串 . 那你再也不会遇到那个问题了