Прежде всего это домашнее задание, над которым я работаю, но мне действительно нужна помощь при ошибке.Вызов класса для тестирования - Python
Таким образом, проект предназначен для реализации вектора (всего списка, кроме имени для этого проекта), используя класс Array. Класс массива, который я использую, можно найти here.
Моя ошибка в том, что каждый раз, когда я пытаюсь вызвать мой код, чтобы проверить это, определенно GetItem и SetItem функции, я ветер с указанием ошибки:
builtins.TypeError: 'type' object does not support item assignment
Ниже класс Я сейчас строю, (пока что кажется, что только len и содержит).
class Vector:
"""Vector ADT
Creates a mutable sequence type that is similar to Python's list type."""
def __init__(self):
"""Constructs a new empty vector with initial capacity of two elements"""
self._vector = Array(2)
self._capacity = 2
self._len = 0
def __len__(self):
"""Returns the number of items in the vector"""
return self._len
def __contains__(self, item):
"""Determines if the given item is stored in the vector"""
if item in self._vector:
return True
else:
return False
def __getitem__(self, ndx):
"""Returns the item in the index element of the list, must be within the
valid range"""
assert ndx >= 0 and ndx <= self._capacity - 1, "Array subscript out of range"
return self._vector[ndx]
def __setitem__(self, ndx, item):
"""Sets the elements at position index to contain the given item. The
value of index must be within a valid range"""
assert ndx >= 0 and ndx <= self._capacity - 1, "Array subscript out of range"
self._vector[ndx] = item
def append(self, item):
"""Adds the given item to the list"""
if self._len < self._capacity:
self._vector[self._len] = item
self._len += 1
Я пытаюсь вызвать код, либо набрав:
Vector()[i] = item
или
Vector[i] = item
Однако, попытка:
Vector[i] = item
дает мне ошибку, и:
Vector()[i] = item
На самом деле, похоже, что-то не делает ничего, кроме как вызвать ошибку.
Может быть, вам просто хотите использовать 'list' вместо этого класса Array? – nbro