在 Python 的输入和类型提示文档中,我们有以下示例:
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
Run Code Online (Sandbox Code Playgroud)
Vector 类型别名清楚地表明类型别名对于简化复杂的类型签名很有用。
然而,给原始数据类型别名又如何呢?
让我们对比两个函数签名的基本示例:
URL = str
def process_url(url: URL) -> URL:
pass
Run Code Online (Sandbox Code Playgroud)
对比
def process_url(url: str) -> str:
pass
Run Code Online (Sandbox Code Playgroud)
URL原始类型具有类型别名的版本str是:
Dict或namedtuple稍后)。问题是我找不到其他人遵循这种做法。我只是担心我无意中滥用类型提示来实现我自己的想法,而不是遵循它们的预期目的。
2020-10 年注意事项
Python 3.9 引入了“灵活的函数和变量注释”,它允许进行如下注释:
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
Run Code Online (Sandbox Code Playgroud)
这使得用于文档目的的别名数据类型相当多余! …