2017-01-28 58 views
1

我正在使用Python3並剛剛學會如何使用mypy。我正在閱讀文檔(特別是this部分似乎相關),但無法找到我的問題的任何答案:mypy:是否可以爲複雜類型定義快捷方式?

是可以爲類型定義一些快捷方式嗎?

例子:

不用編寫

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:] 

只是爲了澄清,我不想定義一個新類Sequence,我只是想更容易讀取功能的簽名。

回答

1

是的,您正在尋找Type Aliases。幸運的是,它們非常簡單,通過分配一個新名稱可以作爲該類型的提示。

在文檔中提供的例子提供的正是你以後的事情爲例:

from typing import List 
Vector = List[float] 

def scale(scalar: float, vector: Vector) -> Vector: 
    return [scalar * num for num in vector] 
+0

我可以在12分鐘內接受了答案。 – Antoine

+0

@Antoine不需要那麼做。花點時間接受堆棧溢出的答案,讓儘可能多的人看到問題,並提供替代解決方案,如果他們認爲這是必需的:-) –

相關問題