【发布时间】:2021-07-12 11:05:52
【问题描述】:
我写了一些python code,它将图形构造为dict,类似于标准库的graphlib。图构造维护一堆带有“退出”顶点的部分图。顶点是tuple[Graph, str],一旦知道该顶点的目的地,就可以改变节点。不是创建一个特殊用途的类型,而是将部分图加上顶点一起混合成一个元组,有点像 lisp 形式。我可以为这些使用什么类型声明?我尝试了以下但"..." is only allowed as the second of two arguments
from typing import Optional
Graph = dict[str, Optional["Graph"]] # None is a terminal
GraphAndVertices = tuple[Graph, tuple[Graph, str], ...]
【问题讨论】:
-
我不太了解你的实际字体布局,你能举个小例子吗?
graphlib将图描述为邻接图,它与您的 递归Graph完全不同,并且不使用与您的tuple类似的任何东西。 -
请注意,元组中的
T, ...表示相同类型元素的可变元组,而元组中的T1, T2表示distinct-type 元素的>固定 大小元组。你可以构造类似tuple[T1, T2]或tuple[T1 | T2, ...]但tuple[T1, T2, ...]没有意义。 -
@MisterMiyagi 似乎 OP 试图描述一个可变长度的元组
(A, B)/(A, B, B)/(A, B, B, B),......我不认为这是元组的东西装备...
标签: python type-hinting python-typing