2015-04-15 26 views
2

我想將類型提示添加到PyCharm,但如果我使用cached_property而不是property,則PyCharm不會檢測返回類型。PyCharm類型提示:返回類型未檢測到

class MyClass(object): 

    #@cached_property # does not work 
    @property   # works 
    def foo_client(self): 
     ''' 
     @rtype foo.Client 
     ''' 
     return client_getter(...) 

用法:

my_class = MyClass() 
my_class.foo_client.HERE_I_WANT_AUTOCOMPLETE 

我用cached-property==1.1.0和PyCharm 4.5。

+1

它似乎通過被複制'__doc__'適當:https://github.com/pydanny/cached-property/blob/master/cached_property.py#L20不知道這是否是PyCharm的過錯或'緩存屬性',但是一點也不清楚你在這裏期待什麼答案。 – jonrsharpe

+0

給接近票數的人的一封信:這是一個完全可以理解的問題。它發生了,對於那些真正知道如何使用這個工具的人來說,這個問題非常合理。所以,儘管我確實明白*你們中的大部分人都有很好的意圖投出近距離投票,但這不是必要的。到OP:嘗試不使用EAP構建,他們是越野車。 –

回答

1

由於您使用的是EAP構建,因此此問題可能有多個解決方案。

  1. 恢復到舊PyCharm。 EAP構建有問題,而且舊版功能通常會遇到問題。這可能是PyCharm試圖增加對類型提示(Python 3.5)的支持,所以你可能在代碼完成時遇到問題。

  2. 您正在寫存根的格式稱爲Epytype,幾乎從不在任何地方使用,所以它通常可能無法正常工作。我會建議使用reStructuredText來代替。只需將文檔格式從「Eypdoc/Epytype」更改爲Python集成工具> Docstrings中的reStructuredText。這很可能會解決問題。

  3. 如果點1和點2失敗。那麼這是一個真正的bug,我建議你在youtrack.jetbrains上報告它。