본문 바로가기
파이썬

파이썬 'MyClass'개체에 '__getitem__'속성이 없습니다.

by º기록 2020. 11. 20.
반응형

다음과 같은 수업이 있습니다.

class MyClass(object):
    def __init__(self, id, a, b, c):
        self.myList     = []
        self.id         = id
        self.a          = a
        self.b          = b
        self.c          = c

    def addData(self, data):
        self.myList.append(data)

기본 코드에서 myClassList 라는 MyClass 인스턴스 목록을 만듭니다. 한 줄에서 주어진 id 를 가진 항목이 이미 존재하는지 확인해야합니다. 나는 이렇게한다 :

id = 'foo' # in real code is set dynamically 
recent_item = next( (item for item in myClassList if item['id'] == id), None )

해당 코드의 두 번째 줄은 다음 오류를 제공합니다.

'MyClass'개체에 '__ getitem __' 속성이 없습니다.

어떻게 고칠 수 있습니까?

 

해결 방법

 

item 은 딕셔너리가 아니라 클래스이므로 멤버 액세스 구문이 다릅니다. 대신 다음 방법으로 id 에 액세스하십시오.

item.id

 

참조 페이지 https://stackoverflow.com/questions/31807172

 

 

반응형

댓글