Ваш код довольно хорош, вы почти его получили.
Первая проблема - это ваш конструктор и метод set()
: используя значение по умолчанию value=int
в параметрах, вы, по сути, назначаете type(int)
, чего вы не хотите. Вы должны либо назначить значение по умолчанию, например 2
, либо использовать подсказку типа, чтобы указать тип данных, например, int
. Вот пример с подсказкой типов и значениями по умолчанию:
def __init__(self, width: int = 2, height: int = 2, fill_value=0):
pass
def set(self, row_index: int, column_index: int, value: int):
pass
Вот фатальная ошибка в вашем методе __add__
: return Matrix(matrix_addition)
. Это создает новый объект Matrix и передает matrix_addition
в качестве аргумента. Однако первый аргумент в Matrix.__init__
- width
, который ожидает int
, а не List[List[int]]
. Вместо этого наберите return matrix_addition
, и он будет работать.