2016-08-05 93 views
0

如何在Python中編寫:類型註釋以防參數可能具有不同類型?在Python中鍵入註釋

""" 
    :type param_name: type1|type2 
    """ 

""" 
    :type param_name: type1/type2 
    """ 

PyCharm接受第二個變種

+0

是否有適用於他們的更一般的類型?你可以使用現有的[ABCs](https://docs.python.org/3/library/collections.abc.html#module-collections.abc)來顯示它們必須提供的*接口嗎? – jonrsharpe

+0

@jonrsharpe讓我們假設該函數可以應用布爾值和用戶模型實例,並且依賴於此參數可以選擇要執行的操作。我知道如何正確地在Python中編寫doc-strings。如果它是一個「|」或「/」或其他類型的分頻器,以防參數可能是不同的類型 – hustas88

回答

1

您正在使用獅身人面像項目符號,順帶被拒絕列入PEP 484 -- Type Hints proposal

:type是一個info field list,並沒有真正的這些正式的規範。該文件示例使用or

:type priority: integer or None 

但要注意integer是不是一個正式的類型,也不是None(它是一個單獨的對象)。

這些是文檔構造,而不是類型提示,真的。 PyCharm完全支持這些是很好的,但這些不是Python標準。

我會堅持正確的類型註釋。這意味着使用Union type

Union[type1, type2] 

你可以把這些在# type:評論,如果您需要支持Python的2