I try to document a :rtype:
docstring parameter returning a generator of Node
:
def __iter__(self):
"""iterate over node children
:rtype: ???
"""
for node in self.children.itervalues():
yield node
What :rtype:
is supposed to be? generator of Node
doesn't seems to work.
You can hint the type of self.children
using :type
below it, as described in the official documentation. This would let you work with this variable everywhere using defined types. Here is an example:
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
But if you prefer to set the return type of __iter__
method, you can do it using next syntax:
def __iter__(self):
"""
:rtype: collections.Iterable[Node]
"""
for node in self.children.itervalues():
yield node
I would prefer first solution though.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With