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
可以在这里使用,但我不知道它是否正确,因为生成器也可以返回值。
感谢。
答案 0 :(得分:8)
在这种情况下,我认为@return
是合适的,因为函数实际上返回了一个带有next
或send
方法的迭代器对象。声明x = my_generator(from=3)
的有效性意味着my_generator
确实会返回一些东西。它只是这样做而不使用return
语句来完成它。
在某些方面,包含yield
语句或表达式的函数的行为类似于类,因为它们是返回具有可预测属性的对象的工厂。但是,因为生成器函数本身可以作为实例方法声明和调用,所以我不认为它们是类。