Tôi có một lớp học như thế này:đối tượng 'MyClass' không có thuộc tính '__getitem__'
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)
Trong mã chính của tôi, tôi có thể tạo một danh sách các trường hợp MyClass gọi myClassList
. Trong một dòng, tôi phải kiểm tra xem một mục với một số id
đã cho đã tồn tại chưa. Tôi làm điều đó theo cách này:
id = 'foo' # in real code is set dynamically
recent_item = next((item for item in myClassList if item['id'] == id), None)
dòng thứ hai trong mã tăng lỗi này:
'MyClass' object has no attribute
'__getitem__'
Làm thế nào tôi có thể sửa chữa?
Bạn cần thêm '__getitem__' –
... bạn có thể triển khai' __getitem__'! Ngoài ra, sử dụng 'item.id' thay vì' item ['id'] '. Cũng lưu ý rằng bạn đang chỉ định 'self.id = a', có thể không phải là ý của bạn và không tuân thủ [hướng dẫn kiểu] (http://www.python.org/dev/peps/pep) -0008 /). – jonrsharpe