'yield'关键字的Docstring标签

alf*_*kim 14 python documentation docstring

在python中有一些docstrings的标签,比如@param@return:

def my_method(a_param):
    ''' @param a_param: Description of this param
        @return: The return value of the method
    '''
    return int(a_param) * (other or 1)
Run Code Online (Sandbox Code Playgroud)

我可以用什么来记录发电机?特别是yield关键字,如:

def my_generator(from=0):
    ''' @param from: The initial value
        @yield: A lot of values
    '''
    yield a_value
Run Code Online (Sandbox Code Playgroud)

我知道@return an iterator可以在这里使用,但我不知道它是否正确,因为生成器也可以返回值.

谢谢.

wbe*_*rry 9

我认为@return在这种情况下是合适的,因为函数实际上返回带有nextsend方法的迭代器对象.声明的有效性x = my_generator(from=3)意味着my_generator确实会返回一些东西.它只是在没有使用return语句的情况下这样做.

在某些方面,包含yield语句或表达式的函数的行为类似于类,因为它们是返回具有可预测属性的对象的工厂.但是,因为生成器函数本身可以作为实例方法声明和调用,所以我不认为它们是类.