-1

そのような機能があるとします:

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()
}

もう 1 つの使用例は、場合によっては一部のプロキシが何らかのオブジェクトを返し、IDE が知る機会がないことを知っている場合ですが、私は確かに知っており、これをコメントで指定して、将来自分自身を助け、IDE を助けたいと考えています。

PHP で PhpStorm を使用している場合、次のようにします。

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

PyCharm を具体的に使用し、Python ドキュメンタを共通に使用して同じ動作を実現するにはどうすればよいですか?

4

2 に答える 2

1

次を使用しdocstringます。

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

詳細については、http://en.wikipedia.org/wiki/Docstring#Pythonを参照してください。

イントロスペクションを使用して、オブジェクトのメソッド、属性などを調べることができます。

dir(object)
help(object)

イントロスペクションに基づく自動補完と IDE 統合が可能です。Python.org の Web サイトで、より詳細な情報を入手できます: http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

が何であるかを調べるには、またはsomeobjectを使用できます。次の疑似コードを参照してください。typeisinstance

type(someobject)
if isinstance(someobject, ClassA):
    print "someobject is a ClassA variable"
于 2012-04-17T16:42:21.723 に答える
0

PyCharm で動作するかどうかはわかりませんが (私は使用しません)、Python 3 では関数の注釈が追加されました。

それらを関数の定義に入れることができます:

def render(someobject :ObjectClass):
    dorender()

おそらく PyCharm はこれを使用して、オブジェクトで使用できるメソッドを定義します。

編集:

ちょっとしたテストの後、これはうまくいくはずです (これはかなり素晴らしいことです)。

于 2012-04-17T16:49:17.920 に答える