我在python 3中有以下代码:
class Position:
def __init__(self, x: int, y: int):
self.x = x
self.y = y
def __add__(self, other: Position) -> Position:
return Position(self.x + other.x, self.y + other.y)
Run Code Online (Sandbox Code Playgroud)
但是我的编辑器(PyCharm)说无法解析引用位置(在_add__方法中).我该如何指定我希望返回类型是类型__add__?
编辑:我认为这实际上是一个PyCharm问题.它实际上使用其警告中的信息和代码完成

但如果我错了,请纠正我,并需要使用其他语法.
我正在尝试为图表实现节点和边缘.这是我的代码:
from typing import NamedTuple, List
class Node(NamedTuple):
name: str
edges: List[Edge]
class Edge(NamedTuple):
src: Node
dest: Node
Run Code Online (Sandbox Code Playgroud)
这会引发错误,因为创建Edge时未定义类型Node.
NameError: name 'Edge' is not defined
Run Code Online (Sandbox Code Playgroud)
切换定义不起作用,因为Edge也指Node.
我怎样才能使它工作?