在 python 3 中,我可以创建参数并返回类型注释。例子:
class Graph:
def __init__(self, V: int, E: int, edges: list):
pass
@classmethod
def fromfile(cls, readobj: type(sys.stdin)):
pass
def V(self) -> int:
pass
def E(self) -> int:
pass
问题是我无法使用当前类(Graph)的返回类型进行注释,该类尚未定义。例子:
class Graph:
def reverse(self) -> Graph:
pass
此代码有错误
def reverse(self) -> Graph:
NameError: name 'Graph' is not defined
这些注释对于记录和允许 IDE 识别参数和返回类型都非常有用 => 启用自动完成
UPD:所以我想这要么是不可能的,要么需要一些我不喜欢的 hack,所以我决定使用def reverse (self) -> 'Graph':
可以理解的文档,尽管违反了规则。缺点是它不适用于 IDE 自动完成功能。