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

Ken*_*der 5 pycharm

我最近选择了PyCharm并且我已经习惯了Wing的一个功能,你可以告诉IDE什么类是特定的标识符(变量,属性等等).例如:

my_object = SomeClass()
assert isinstance(my_object.my_attribute, SomeOtherClass)
Run Code Online (Sandbox Code Playgroud)

在这一点上,Wing确切地知道my_object.my_attribute是什么,即使它无法从源代码分析中弄清楚它.

我正在寻找PyCharm中的类似功能.我知道对象的特定属性是什么,但PyCharm没有,所以我怎么能告诉它,所以它可以给我方便的完成?

相关问题:我也看到了类似的问题,我怎样才能告诉PyCharm参数的类型是什么?,但它不包括属性,只包括参数.

yol*_*ole 7

实际上PyCharm也理解'assert isinstance'语法,但仅适用于不合格的引用.我已经提交了一个问题来支持合格的引用:

http://youtrack.jetbrains.net/issue/PY-5614

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


jui*_*ice 5

如果我正确理解你的问题你正在寻找的是来自PyCharm的一般类型推断.来自静态类型的语言,当我使用代码完成时,我感到困惑,并且选择与python库的内容一样多.

我发现在PyCharm中它可以选择在运行时收集类型信息,并在开发期间(即代码完成)使其可用.

这是你怎么做的......

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

当你"调试"你的代码时(不是你不必使用断点).PyCharm将开始为所有代码导航/完成提供更好的建议.

干杯

调试首选项的图片