programing

파이썬 3의 수율 생성기에는 next() 함수가 없습니다.

subpage 2023. 5. 4. 19:57
반응형

파이썬 3의 수율 생성기에는 next() 함수가 없습니다.

이 질문에서 저는 파이썬 생성기를 사용한 무한 시퀀스를 가지고 있습니다.하지만 파이썬 3에서는 동일한 코드가 작동하지 않습니다. 왜냐하면 그것은 없는 것 같기 때문입니다.next()기능.에 해당하는 것은 무엇입니까?next기능?

def updown(n):
    while True:
        for i in range(n):
            yield i
        for i in range(n - 2, 0, -1):
            yield i

uptofive = updown(6)
for i in range(20):
    print(uptofive.next())

Python 3에서는 다음을 사용합니다.next(uptofive)대신에uptofive.next().

빌트인next()기능은 Python 2.6 이상에서도 작동합니다.

Python 3에서, 구문을 더 일관되게 만들기 위해,next()메서드의 이름이 다음으로 변경되었습니다.__next__()당신은 그것을 사용할 수 있습니다.이는 PEP 3114에 설명되어 있습니다.

Greg의 솔루션을 따라 기본 제공 함수 호출(그 후 개체의 검색을 시도함)__next__()방법)이 권장됩니다.

언급URL : https://stackoverflow.com/questions/12274606/theres-no-next-function-in-a-yield-generator-in-python-3

반응형