TypeError: 'Color' object is not subscriptable

김동현·2023년 11월 6일

python

목록 보기
5/8

TypeError: 'Color' object is not subscriptable

  • BaseModel을 상속받은 클래스의 인스턴스를 리스트나 딕셔너리와 같은 방식으로 인덱실 할 때 발생하는 에러
  • 필드에 접근할 때 속성(attribute)접근 방식을 사용해야 합니다.

주요 원인

  • enumerate < 리스트나 튜플과 같이 순서가 있는(iterable) 객체에 사용 가능합니다
  • 인스턴스는 일반적으로 이러한 방식으로 반복할 수 없습니다.

해결법

  • 'Color' 클래스의 각 필드에 직접 접근해야 합니다.
  • 인스턴스의 속성으로 리스트를 만들고 enumerate를 사용할 수 있습니다

오류가 발생한 코드

def func0(item_colors : Color):
    for idx, i in enumerate(item_colors):
		pass
	

개선된 코드

def func1(item_colors: Color):
    colors = [item_colors.outer, item_colors.top, item_colors.bottom, item_colors.item]
    for idx, color_name in enumerate(colors):
		pass
profile
nice to meet you:)

0개의 댓글