2016-09-27 3 views
0

값을 반환하는 옵션도있는 생성기 함수를 작성하는 방법이 궁금합니다. 파이썬 2에서 생성자 함수가 값을 반환하려고 시도하면 다음과 같은 오류 메시지가 나타납니다. SyntaxError: 'return' with argument inside generator생성기 함수의 반환 값 Python 2

발전기를 받고 싶으면 지정하는 부분에 기능을 쓸 수 있습니까? 예를 들어

:

def f(generator=False): 
    if generator: 
     yield 3 
    else: 
     return 3 
+3

생성기 또는 표준 함수를 호출하는 래퍼 함수를 ​​작성하지 않는 이유는 무엇입니까? – Aidenhjj

+0

이것은 두 가지 기능을합니다. – user2357112

+0

아니요, 어떻게 든 함수 또는 생성기가 될 수있는 하나의 함수를 작성할 수 없습니다. 대답이 있으시면 * 대답을 작성하십시오 *. – jonrsharpe

답변

4

필수 읽기 : Understanding Generators in Python

주요 정보 : 함수가 발전기한다

yield 어디에서.

코드가 구문 분석 될 때 기능이 생성기로 표시됩니다. 따라서 런타임에 전달 된 인수를 기반으로 함수 동작 (생성기/생성기 없음)을 전환하는 것은 불가능합니다.