mypy:是否可以为复杂类型定义快捷方式?
mypy: Is it possible to define a shortcut for complex type?
我正在使用 Python3,并且刚刚学会了如何使用 mypy
。我正在阅读文档(特别是 this 部分似乎相关),但找不到我的问题的任何答案:
是否可以为类型定义一些快捷方式?
示例:
而不是写作
from typing import List
def f(x: List[int]) -> List[int]:
return x[1:]
我想要
from typing import List
sequence = DefineTypeShortcut(List[int])
def f(x: sequence) -> sequence:
return x[1:]
澄清一下,我不想定义新的 class Sequence
,我只是想要更易于阅读的函数签名。
是的,您正在寻找 Type Aliases
。幸运的是,它们非常简单,通过分配一个新名称,该名称可以作为类型的提示。
文档中提供的示例提供了一个完全符合您要求的示例:
from typing import List
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
我正在使用 Python3,并且刚刚学会了如何使用 mypy
。我正在阅读文档(特别是 this 部分似乎相关),但找不到我的问题的任何答案:
是否可以为类型定义一些快捷方式?
示例:
而不是写作
from typing import List
def f(x: List[int]) -> List[int]:
return x[1:]
我想要
from typing import List
sequence = DefineTypeShortcut(List[int])
def f(x: sequence) -> sequence:
return x[1:]
澄清一下,我不想定义新的 class Sequence
,我只是想要更易于阅读的函数签名。
是的,您正在寻找 Type Aliases
。幸运的是,它们非常简单,通过分配一个新名称,该名称可以作为类型的提示。
文档中提供的示例提供了一个完全符合您要求的示例:
from typing import List
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]