2011-10-04 7 views
10

'yield'키워드에 대한 Docstring 태그

@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을 사용할 수 있지만 생성기가 값을 반환 할 수 있기 때문에 올바른지 알 수 없습니다.

고마워.

+6

필자가 아는 한,이 태그는 타사 도구에서 사용되며 파이썬 자체에서는 사용되지 않습니다. – Daenyth

+2

생성기는 값을 '산출'할 수 있습니다. 생성기 객체를 반환합니다. – agf

답변

7

이 함수는 실제로 next 또는 send 메서드를 사용하는 반복기 개체를 반환하기 때문에 @return이 적합하다고 생각합니다. 명세서 x = my_generator(from=3)의 유효성은 my_generator이 실제로 어떤 것을 반환한다는 것을 의미합니다. 이 작업을 수행하려면 return 문을 사용하지 않아도됩니다.

어떤 식 으로든 yield 문 또는 표현식을 포함하는 함수는 예측 가능한 속성을 가진 객체를 반환하는 팩토리이기 때문에 클래스처럼 동작합니다. 그러나 생성자 함수 자체는 선언 할 수 있고 인스턴스 메서드로 호출 할 수 있기 때문에 클래스로 생각하지 않습니다.

관련 문제