Python 文档管理器,IDE 指导



假设我有这样的函数:

def render(someobject):
 someobject. #here i expect IDE to know which class it is and autocompletion and other IDE functional will be available
 dorender()

就我而言,IDE 无法知道里面有什么。我如何使用注释来讲述它?

在PHP的情况下,我使用了这样的东西

/**
 * @param MyClass myobject
**/
function render($myobject){
  //by typing $myobject-> IDE already knows, that it should use $myobject as MyClass objec
  dorender()
}

另一个用例是,当我知道,在某些情况下,某些代理将返回一些对象IDE没有机会知道,但我肯定知道,并希望通过注释来指定这一点,以帮助自己将来并帮助IDE。

在使用 PhpStorm 时,我会在 PHP 中执行以下操作:

$myobject=some_proxy()
/**
 * @var $my_object MyClass
**/
// in following code IDE will use $myobject as MyClass

我怎样才能通过 PyCharm 和 python 文档器来实现相同的行为?

使用docstring

def render(someobject):
    """ This methods renders some object. """
    dorender()

更多信息可以在这里找到 http://en.wikipedia.org/wiki/Docstring#Python

您可以使用内省来了解对象的方法、属性等:

dir(object)
help(object)
基于

内省的自动完成和IDE集成是可能的,Python.org 网站上提供了更详细的信息:http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

要找出someobject是什么,可以使用typeisinstance,请参阅以下伪代码:

type(someobject)
if isinstance(someobject, ClassA):
    print "someobject is a ClassA variable"

我不确定它是否可以在 PyCharm 中使用(我不使用它) - 但对于 Python 3 添加了函数注释。

您可以将这些放入函数的定义中:

def render(someobject :ObjectClass):
    dorender()

也许 PyCharm 会使用它来定义哪些方法在某个对象上可用。

编辑:

经过一个小测试,我想这应该可以工作(这非常棒)。

最新更新