'yield'关键字的Docstring标签

时间:2011-10-04 18:39:31

标签: python documentation docstring

python中有一些文档字符串标记,例如@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)

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

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

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

感谢。

1 个答案:

答案 0 :(得分:8)

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

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