15

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可以在这里使用,但我不知道它是否正确,因为生成器也可以返回值。

谢谢。

4

1 回答 1

9

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

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

于 2011-10-04T19:29:42.550 回答