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'
오류를 해결하는 방법을 알았습니다. 이 솔루션이 도움이 되었기를 바랍니다.