作者:我本僐悢 | 来源:互联网 | 2022-12-09 01:45
我有这种形式的功能:
def foo(o: "hello") -> dict:
# pass
我知道" - > dict"意味着foo返回一个字典.我不明白的是"你好"的一部分.为什么这个类型的提示是以字符串形式给出的?什么是"你好"?
可能相关 - 这是一个自动生成的文件.
1> FHTMitchell..:
有时需要在创建对象之前设置类型注释,例如:
class Node:
def next() -> Node:
pass
这段代码实际上失败了,因为在类仍在创建时Node
被引用为注释.这与以下失败的原因相同:Node.next
Node
class T:
t = T()
要解决这个问题,您可以使用字符串代替
class Node:
def next() -> 'Node':
pass
所以typechecker只会Node
稍后评估(前向引用).
这实际上决定是一个设计缺陷所以在python 3.7中你可以使用from __future__ import annotations
,第一个例子将起作用.