AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.

Rohan Timalsina 2023년6월21일
AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.

속성은 개체 또는 클래스와 관련된 값입니다. 메소드에서 지원하지 않는 유형의 객체 속성을 호출하면 Python에서 AttributeError가 발생합니다.

예를 들어 int 객체에서 split() 메서드를 사용하면 int 객체가 split() 메서드를 지원하지 않기 때문에 AttributeError가 반환됩니다.

Python 3에는 반복자에 연결된 .next 메서드가 없습니다. 결과적으로 generator 개체에서 .next 메서드를 사용하려고 하면 AttributeError가 발생합니다.

이 튜토리얼은 Python에서 AttributeError: 'generator' object has no attribute 'next'를 수정하는 방법을 알려줍니다.

Python에서 AttributeError: 'generator' object has no attribute 'next' 오류 수정

다음은 Python 3에서 yield 문을 사용하는 동안 AttributeError의 예입니다.

def get_data(n):
    for i in range(n):
        yield i


a = get_data(20)
for i in range(10):
    print(a.next())

출력:

Traceback (most recent call last):
  File "c:\Users\rhntm\myscript.py", line 6, in <module>
    print(a.next())
AttributeError: 'generator' object has no attribute 'next'

보시다시피 코드 print(seq.next())를 포함하는 AttributeError가 라인 6에 있습니다. Iterator에서 다음 항목을 가져오기 위해 .next 메서드를 사용했기 때문입니다.

.next 메서드는 Python 3에서 내장 함수 next()로 대체되었습니다. 아래와 같이 next 함수를 사용하여 이 오류를 수정할 수 있습니다.

def get_data(n):
    for i in range(n):
        yield i


a = get_data(20)
for i in range(10):
    print(next(a))

출력:

0
1
2
3
4
5
6
7
8
9

Python 2에서는 .next 메서드를 사용할 수 있지만 Python 3에서는 AttributeError라는 예외가 발생합니다.

이제 파이썬에서 'generator' object has no attribute 'next' 오류를 해결하는 방법을 알았습니다. 이 솔루션이 도움이 되었기를 바랍니다.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - Python Error