2017-06-08 6 views
3

を返す関数のために、私はNodeの発電機を返す:rtype:ドキュメンテーション文字列パラメータを文書化しよう:PyCharmは:どのようにドキュメントに:RTYPE:発電

def __iter__(self): 
    """iterate over node children 

    :rtype: ??? 
    """ 
    for node in self.children.itervalues(): 
     yield node 

:rtype:をすることになっていますか? generator of Nodeは機能していないようです。

答えて

2

officialのマニュアルに記載されているように、タイプself.childrenの下に:typeを使用するとヒントが得られます。これにより、定義された型を使用してこの変数をどこでも使用できます。次に例を示します。

class Node(object): 
    def foo(self): 
     pass 


class Iterator(object): 
    def __init__(self): 
     self.children = '' 
     """:type: dict[str, Node]""" # <<< define type of self.children after assigning the value 

    def __iter__(self): 
     for node in self.children.itervalues(): 
      yield node 


if __name__ == '__main__': 
    for node in Iterator(): 
     node. # <<< type hinting will work here 

enter image description here

しかし、あなたは__iter__メソッドの戻り値の型を設定することを好む場合は、次の構文を使用してそれを行うことができます。

def __iter__(self): 
    """ 
    :rtype: collections.Iterable[Node] 
    """ 
    for node in self.children.itervalues(): 
     yield node 

私は最初のソリューションを好むだろうしかし、。

+0

私はあなたがこれを行うことができるか分からなかった!ありがとう!私は '#type:dict [int、Node]'で試しました。うまく動作します。しかし、私の立場はrestStructuredTexを使ってドキュメントを生成することです。返される型のdocstring関数のどこかに記述する必要があります。 – Narann

+1

@Narann、次に、2番目のアプローチを使用することもできます。 – grundic

関連する問題