有没有办法明确地告诉PyCharm属性是哪个类的实例?

有没有办法明确地告诉PyCharm属性是哪个类的实例?,pycharm,Pycharm,我最近学习了PyCharm,我已经习惯了Wing的一个特性,在这个特性中,您可以告诉IDE特定标识符(变量、属性等)将是什么类。例如: my_object = SomeClass() assert isinstance(my_object.my_attribute, SomeOtherClass) 此时,Wing确切地知道my_object.my_属性是什么,即使它无法从源代码分析中找出它 我正在PyCharm中寻找类似的功能。我知道一个对象的特定属性是什么,但PyCharm不知道,所以我怎么

我最近学习了PyCharm,我已经习惯了Wing的一个特性,在这个特性中,您可以告诉IDE特定标识符(变量、属性等)将是什么类。例如:

my_object = SomeClass()
assert isinstance(my_object.my_attribute, SomeOtherClass)
此时,Wing确切地知道my_object.my_属性是什么,即使它无法从源代码分析中找出它

我正在PyCharm中寻找类似的功能。我知道一个对象的特定属性是什么,但PyCharm不知道,所以我怎么能告诉它,这样它就可以给我方便的补全


相关问题:我也看到了类似的问题,但它不涉及属性,只涉及参数。

实际上,PyCharm也理解“assert-isinstance”语法,但仅适用于非限定引用。我已经提交了一个问题来支持这一点,以获得合格的参考:

在当前版本中,您可以通过转到SomeClass的声明并为属性添加epydoc或sphinx docstring来指定my_属性的类型。

这对我有用(2.6.2)


如果我正确理解了你的问题,你要找的是PyCharm的一般类型推断。我来自一种静态类型的语言,当我使用代码补全时,我感到困惑,而且选择的内容几乎和python库的内容一样多

我发现在PyCharm中,它可以选择在运行时收集类型信息,并在开发时(即代码完成)提供这些信息

这是你怎么做的

首选项>Python调试器>“收集代码洞察的运行时类型”

在“调试”代码时(不需要使用断点)。PyCharm将开始为所有代码导航/完成提供更好的建议

干杯

class Rule (object):
    def __init__(self, *args):
        self.criteria = []
        """@type : list of Criterion"""
        crit = self.criteria[0]
        #on this line, code completion works for "crit"