當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python typing.overload用法及代碼示例


用法:

@typing.overload

@overload 裝飾器允許說明支持多種不同參數類型組合的函數和方法。一係列 @overload 修飾的定義必須緊跟一個非 @overload 修飾的定義(對於相同的函數/方法)。 @overload 修飾的定義僅用於類型檢查器,因為它們將被非 @overload 修飾的定義覆蓋,而後者在運行時使用但應被類型檢查器忽略。在運行時,直接調用 @overload -decorated 函數將引發 NotImplementedError 。給出比使用聯合或類型變量表示的更精確類型的重載示例:

@overload
def process(response: None) -> None:
    ...
@overload
def process(response: int) -> tuple[int, str]:
    ...
@overload
def process(response: bytes) -> str:
    ...
def process(response):
    <actual implementation>

參看PEP 484有關詳細信息以及與其他類型語義的比較。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 typing.overload。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。