생성기 및 기능

TJK

여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 오늘은 발전기 세계로의 첫 진출입니다. 나는 이것을 pythontutor visualizer에 넣었지만 왜 이런 일이 발생하는지 이해하지 못합니다. 시각화 도우미는 "생성기 반환 인스턴스"를 내 보냅니다. 나는 불행히도 이것이 왜 그런지 이해하지 못하지만 나와 비슷한 다른 SO 스레드를 읽었습니다. 이 특정 문제 외에도 제너레이터를 정확하고 효율적으로 사용하는 방법을 배우는 훌륭한 방법에 대한 모든 생각에 감사드립니다. 감사합니다!

def even(nums):
    for number in nums:
        if number % 2 == 0:
             yield number


def find_evens(number_list):
    return even(number_list)

>>> find_evens([1,2,3,4,5,6])
<generator object even at 0x104f7af10>
디미트리 스 파사 라키스 힐 리아드

Python REPL은 생성기 객체의 기본 표현을 다시 제공합니다.

제너레이터는 자체적으로 값을 산출하지 않으므로 강제로 사용해야합니다. 강제로 사용할 수있는 많은 옵션이 있습니다. 예를 들면 list다음과 같습니다.

list(find_evens([1,2,3,4,5,6]))
[2, 4, 6]

또는 유사하게이를 통해 반복합니다.

for i in find_evens([1, 2, 3, 4, 5, 6]):
    print(i)

이 두 예제 (루핑, 호출 list)는 __next__생성자 객체를 호출 하여 작성한 명령문에 따라 다음 값을 반환하도록합니다.

이것에 대한 좀 더 많은 정보 는 GeneratorPython wiki 페이지를 항상 살펴볼 수 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사