2017-06-27 93 views
1

我試圖在描述here時使用python 2.7中的類型提示。Python 2.7類型提示在PyCharm中可調用的類型

我有一個函數,期望一個具有特定簽名作爲參數的可調用(函數),我不知道如何註釋它。

我已經試過

def set_function(self, function): 
    # type: ((int) -> None) -> None  

但PyCharm顯示預期「)」和意外標記錯誤

我似乎無法找到這個任何文件...

回答

3

的在Pycharm(或任何其他可以理解PEP 484類型提示的工具)中記錄可調用的正確方法如下所示:

from typing import Callable 

def set_function(self, function): 
    # type: (Callable[[int], None]) -> None 
    ... 

由於您使用的是Python 2,因此您需要從PyPi安裝typing模塊(如果尚未安裝)。 (typing被添加到3.5的Python標準庫中,PyPi上的模塊是一個backport)。

您可以在Python's documentation以及mypy的文檔中找到有關使用打字模塊的更多信息。如果你不知道,mypy是一個命令行工具,它也可以理解PEP 484類型提示,並且還可以靜態分析和檢查你的代碼,它是Pycharm內置類型檢查器的獨立工作,因爲兩者都是Pycharm和mypy使用PEP 484類型,mypy的文檔通常是開始尋找更多關於使用類型提示的好地方。)