我最近剛發布了一篇關於在 Typescript 中註解函數的部落格。我剛剛完成了一些研究,並了解了更多關於如何在 Python 中註釋函數的知識,本博客將主要介紹使用與 上一篇博客類似的示例來註釋 Python 函數。
您可以透過將 python.analysis.typeCheckingMode 設定為 basic、standard、strict 之一來驗證 Visual Studio Code 中的類型註解。 basic 和 standard 選項不一定能確保您註解函數和變量,但 strict 可以。
這可能會讓您感到震驚,但您可以在 Python 中傳回函數並將函數作為值傳遞。回調函數實際上是使用 Callable 類型進行註解的,其寫法如下;
例如,一個函數 length(text: str) -> int 將被註解為 Callable[[str], int]
例如;
JavaScript 中的此函數
在Python中可以這樣寫
我們可以建立一個名為 number 的 TypeAlias,它是 int 和 float 的聯合(字面意思),例如;
將參數視為JavaScript 數字.
因此,要註解這個函數,我們有;
經典的泛型函數範例是
使用 TypeVar 我們現在可以建立通用詳細資訊(比 typescript 更詳細)。
這樣我們就有
那麼自訂 myMap 函數怎麼樣,它的作用類似於 JavaScript 中的地圖。這樣我們就有了;
記住:Python中的map()回傳的是Iterable類型而不是List型別
我們可以混合使用 Callable 和 TypeVar 類型來註解這個函數。 觀察...
或者我們可以別名 Callable 函數
觀察 MappableFunction 接受這些泛型類型輸入和輸出並將它們應用到 Callable[[Input], Output] 的上下文中。
花點時間想想 myFilter 函數會如何註解?
好吧,如果你想到了這個
你說得對
我知道我不應該談論類別註釋,但請給我一些時間來解釋泛型類別。
如果您來自Typescript詩句,這就是您定義它們的方式
但在 Python 中它們卻相當不同且尷尬。
因此要在 Python 中重新建立這個 GenericStore 類別
正如我在上一篇部落格中所說,它有助於建立更聰明的類型系統,從而減少出現錯誤的機會(特別是在使用mypy 等靜態文件檢查器時) 。此外,當使用強大的類型系統編寫庫(或SDK)時,可以大幅提高使用該庫的開發人員的工作效率(主要是因為編輯器的建議)
如果您有任何疑問或本文中存在錯誤,請隨時在下面的評論中分享⭐
以上是在 Python 中註解函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!