2015-04-15 29 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上报告它。